Hi Edward,This is possibly unrelated, but the setup seems almost identical to a very similar problem we had in some code, i.e. very long compile times (6+ minutes for 1 module) and excessive memory usage when compiling generic serialization instances for some data structures.In our case, I also thought that INLINE functions were the cause of the problem, but it turns out they were not. We had a nested data structure, e.g.> data Foo { fooBar :: !Bar, ... }with Bar very large (~150 records).even when we explicitly NOINLINE'd the function that serialized Bar, GHC still created a very large helper function of the form:> serialize_foo :: Int# -> Int# -> ...where the arguments were the unboxed fields of the Bar structure, along with the other fields within Foo.