-- Both blocks are illegal Haskell 98, because of the un-saturated -- type synonym, but (rather obscurely) at one point (GHC 6.3), we -- accepted 'blah', but rejected 'blah1' module ShouldFail where data T = T -- This was erroneously accepted type Foo a = String -> Maybe a type Bar m = m Int blah = undefined :: Bar Foo type Foo1 a = Maybe a type Bar1 m = m Int blah1 = undefined :: Bar1 Foo1