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 t
rank (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

Reply via email to