 
 class Lambda
   constructor: (@params, @body) ->
+
+class Environment
+  constructor: (@variables) ->
+  get: (name) -> @variables[name]
+
+envstack = []
 
 class @Parser
   constructor: ->

            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'

                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

