haskell compilers project