{-# LANGUAGE LiberalTypeSynonyms #-} type Id a = a data Foo f = Foo (f Int) foo1 :: Foo Id -> Int foo1 (Foo x) = x