A C compiler written in Haskell