New codegen approach for data constructors
Generate prototypes for typeclasses