       else
         name = node.token
         if macros[name]
-          expandMacro name
+          macros[name] name
         else
           [firstChar] = name
           if firstChar is '-'

      node.scope[name] = true
      return
  throw new Error "Defining #{name} without enclosing scope"

compileFn = (node) ->
  {params, body, wheres} = fnDefinition node

isMap = (node) ->
  isTuple(node) and (elems = inside node; elems.length > 0) and elems[0].label is 'label'

# Compiling arrays, typles and map literals

compileList = (elems) ->
  # "[#{elems.join ', '}]"
  "[#{elems.map(compileImpl).join ', '}]"

compileMap = (elems) ->
  [constr, args...] = elems
  items = args.map(compileImpl).join ', '
