Untypeable Haskell 98
module Test where f :: a -> a f x = g x where -- g :: a -> a g y = bind x y bind :: a -> a -> a bind a b = a
The above Haskell code is Haskell 98, rank-1 types, but cannot be given a type signature. Try commenting out the type signature for g and everything will go wrong.
In GHC making the type of f :: forall a . a -> a, and adding -fglasgow-exts will make this code work. No such luck in Hugs.