[Haskell-cafe] What is the rank of a polymorphic type?
ekirpichov at gmail.com
Sat Dec 5 16:00:51 EST 2009
2009/12/5 Stefan Holdermans <stefan at cs.uu.nl>:
>> 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
1) Does there exist an authoritative source saying the same? Not that
I'm doubting, just supposing that the source would have other
interesting information, too :)
2) Is it true that rank (forall a . a, forall a . a) == 0 ?
Web IR developer, market.yandex.ru
More information about the Haskell-Cafe