> Is there documentation (e.g. on the GHC Commentary somewhere I can't 
 > find) an explanation of what C-- "kinds" are or how they're useful/used? 

Probably not.  GHC Cmm is a sort of pidgin version of C-- 2.0, and
true C-- kinds are explained in the C-- specification, section 5.1.
Downloadable from http://tinyurl.com/4sqmq6.

 >   When I was portabilizing that code area a while ago I had ignorantly 
 > changed some of the uses of "kind" to "hint" for consistency (both names 
 > had been being used for the same thing via type-synonym.) and because I 
 > could guess how the code make sense if it was, informally, a hint about 
 > what to do.

Hint was the word used originally, and several people (including
reviewers) objected to it on the grounds that the 'hints' are actually
mandatory to get the compiler to do what you want (e.g., pass
arguments in floating-point registers).  So we changed the name to
'kind'.

If you like dense, indigestible academic papers full of formalism,
there's one I'm quite proud of at http://tinyurl.com/4gwjub.
It explains in detail how kinds are useful for specifying and
implementing procedure calling conventions, which is the use to which
they are put within GHC. 


Norman

P.S. I have placed this information in the Commentary at
http://tinyurl.com/4kmpw9 


 > [EMAIL PROTECTED] wrote:
 > > Sat May  3 15:45:14 PDT 2008  Norman Ramsey <[EMAIL PROTECTED]>
 > >   * replace Cmm 'hint' with 'kind'
 > >   C-- no longer has 'hints'; to guide parameter passing, it
 > >   has 'kinds'.  Renamed type constructor, data constructor, and record
 > >   fields accordingly

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to