add haskell mode support