This is the original paper from 2013:
http://www.leafpetersen.com/leaf/publications/hs2013/hrc-pap...
GHC can use this intermediate code (a-la LLVM) to produce executable. The idea is to create an intermediate code which is better optimised for their CPU.