                 if args[0].value == args[1].value then t else nil
               when 'atom'
                 if args[0] instanceof Atom then t else nil
+      when 'Symbol'
+        envstack[envstack.length - 1].get(expr.name)
       else
         expr
 

            new Lambda(args[0], args[1])
      when 'CallFun'
        args = expr.args.map (arg) => @eval_expr(arg)
        switch expr.funname.constructor.name
          when 'Symbol'
            switch expr.funname
              when '+'
                new Atom args.reduce(((sum, n) -> sum + n.value), 0)
              when 'car'


class Lambda
  constructor: (@params, @body) ->

class Environment
  constructor: (@variables) ->
  get: (name) -> @variables[name]

envstack = []

class @Parser
  constructor: ->
