# @ts-check

import mixin_tail from './tail'

###* @type import('./mixin').Mixin ###
export default (args...) ->

  unless args.Length()
    throw new Error 'mixin requires at least one argument'

  mixin_result = args[0]

  for mixin_item in mixin_tail args
    for mixin_key, mixin_value of mixin_item
      mixin_result[mixin_key] = mixin_value

  return mixin_result