A predicate type introduces a constraint on a type variable introduced
by a forall type (or type lambda). In the example above, the type
variable \lam{t} can only contain types that are an \emph{instance} of
A predicate type introduces a constraint on a type variable introduced
by a forall type (or type lambda). In the example above, the type
variable \lam{t} can only contain types that are an \emph{instance} of