Added type constructors.  Now we can encode arbitrary axiom systems.