Compilers use many different intermediate languages (ILs) for optimizing code. The best IL depends on the source and target languages, the compilation phase, and which optimizations are to be performed. We explore several common ILs, including static single-assignment (SSA) form and continuation-passing style (CPS), and present a new language being implemented for the Glasgow Haskell Compiler (GHC) that is both lightweight and powerful.