Eugene,
Consider the type: (forall a . a) -> String.
It's of rank 2.
What is the definition of rank of a polymorphic type?
The minimal rank of a type is given by rank (forall a. t) = 1 `max` rank trank (t -> u) = (if rank t == 0 then 0 else rank t + 1) `max` rank u
rank _ = 0 HTH, Stefan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe