added haskell modes