explicit type signatures for datacons
typecheck type constructors