Since GHC is bootstrapped by a lower stage compiler I'd imagine there are some limitations to what kinds of language features at least parts of it can use as well. I haven't looked into all the details, but last time I did look into building GHC from scratch I remember there being an initial step where you built an initial minimal Haskell compiler that was written in I think C--, and then used that to build the rest of GHC.