On Github Tarrasch / ghc-intro-nov-2014
GHC converts Haskell to executable code by successive recasting
Each recasting gets us closer to machine code, we call these Intermediate Representations IR for short.
At each representation, we do optimizations that are appropriate for that level of abstraction. (Discuss while looking at them)