type-constructor-gen