[jhc] patches to fix *haskell* typechecking of (->)