Core eval function
NOTE: This function does not include macro support and should not be called directly. Instead, use
Evaluate lisp code that has already been loaded into haskell
TODO: code example for this, via ghci and/or a custom program.
Environment containing the primitive forms that are built into the Scheme language. Note that this only includes forms that are implemented in Haskell; derived forms implemented in Scheme (such as let, list, etc) are available in the standard library which must be pulled into the environment using (load).