Haskell Implementation of LLVM