On Fri, Jun 6, 2008 at 4:41 PM, Klaus Ostermann <ko at daimi.au.dk> wrote: > type Id a = a > > x :: Id Int > x = undefined > > y :: (a Int) -> (a Int) > y = undefined In "a Int", "a" refers to any type constructor, not any type function. So the best you can do is: newtype Id a = Id a -- rest as before Luke