> Id is an operation over types yielding a type, as such it doesn't make > much sense to me to have (Id a -> Id a) but rather something like (a -> > Id a). Actually, it can make perfect sense: e.g. if the `Id' function acts as a constraint. Stefan