`-fhpc` doesn't work with bytecode interpreter
Currently if you want to use `-fhpc` you need to compile a native executable. This can be quite expensive since `-fhpc` inserts lots of instrumentation and affects how the optimiser runs.
It could be more ergonomic to run program coverage tests using the interpreter, however `-fhpc` currently forces you into native code generation paths.
Thankfully it isn't too difficult to extend the interpreter to support `-fhpc` so the user can choose which way they want to go, a prototype branch can be found https://gitlab.haskell.org/ghc/ghc/-/tree/wip/hpc-interpreter?ref_type=heads
issue