A c-- compiler written in Haskell