
On 02/24/09 13:41, Paul Johnson wrote:
Derek Gladding wrote:
Please forgive me if I'm still mentally contaminated by the OO way of seeing (and discussing) the universe, but I'm trying to figure out how to "inherit an interface" from a multi-parameter type class. [...] but this isn't allowed (kind mismatch).
Kinds are a meta-type system for types. Because Haskell has such a rich type system, the types themselves need a type-like system. These are "kinds". You never declare kinds (apart from certain language extensions not in use here): the compiler infers them.
Is a kind sorta like a type universe as in nuprl: http://www.cs.cornell.edu/home/sfa/Nuprl/NuprlPrimitives/Xuniverse_doc.html Except that a kind sounds like a universe at level 2 or 3. IOW, I guess haskell types are at level 1, and kines at level 2? Then I guess values would be at level 0? Is there some version of haskell that has more levels in its type universe. If not, it there some reason for that limitation? Is there some reference explaining the relationship of haskell types to nuprl type universes? TIA. -Larry