Factor out common constructors of Type and GadtType