Unfortunately -fobject-code is necessary when loading GHC in GHCi as the
bytecode interpreter doesn't support unboxed tuples, which various GHC
modules use.
There's a ticket for that: https://ghc.haskell.org/trac/ghc/ticket/1257 ("Bytecode generator can't handle unboxed tuples"). Fixing that would make it much easier to use GHCi to load the compiler, and allow setting breakpoints, make a change and use `:r` to reload etc. The ticket is closed as wontfix however.