Add a few more terms
Expand Exp type with more constructors
Make Array polymorphic in the type it holds
fixup