It's not that unrealistic of a scenario, even if there are better ways to do it. And 8MB is pretty small. There's no good reason why we can't do better.
I found a trace of the compiler kind of surprising; the time is not all being spent in the type checker, as you observed:
