{-# LANGUAGE Rank2Types #-}

--Tests alpha-renaming in with extended type-synonyms

module ShouldCompile where

type Foo x = forall a. a -> x

foo :: Foo (Foo ())
-- foo :: forall a b. a -> b -> ()
--  NOT   forall a. a -> a -> ()
foo =  undefined

baz = foo 'c' True
