A horrible C compiler in Haskell