changes to ret behaviour
+ haskell mode