support tail call optimization
support closures
support quasiquoting and unquoting
use iterative tree traversals
use arbitrary sized integers and fractions
support continuation passing style programming
access lists as arrays or take slices