Add more Exp constructors, make Array polymorphic in the type it is containing