Skip to content

GHC wastefully allocates thousands of `TyConApp Type []` nodes

I was investigating why GHC allocates so many TyConApp constructors and observed that the primary cause of allocation (25%) was TyConApp Type [].

We should add a special case to mkTyConApp to check for this case and create a static top-level definition for TyConApp Type [] so all these redundant constructors are not duplicated. I estimate this will reduce allocations when compiling Cabal by at least 30mb.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information