> 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