front end replace HsName with Name everywhere middle end enforce strict fields | strict fields that are RawTypes should be unboxed, otherwise a seq should be inserted. CPR enumerated values full lazyness transformation better strictness analyzer (HORN?) use typeanalysis to prune class methods and instantiate polymorphic functions called monomorphically collectOcc should annotate variables directly rather than returning a map CPR should be performed recursivly on data types back end grin remove dead arguments completly from functions calculate appropriate size of heap values statically rather than using jhc_sizeof codegen preserve mapping of c variables rather than declaring a ton of temporaries