improve haskell support