Changes between Version 5 and Version 6 of GhcKinds


Ignore:
Timestamp:
Aug 5, 2011 1:21:17 PM (3 years ago)
Author:
ia0
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GhcKinds

    v5 v6  
    1515== Implementation == 
    1616 
    17 The branch is called {{{ghc-kinds}}}.  Its current state is: 
    18 ||             || ADT promotion || Primitives || Kind polymorphism || 
    19 || Parser      ||      Yes      ||    Yes     ||       Yes         || 
    20 || Renamer     ||  In progress  ||    Yes     ||                   || 
    21 || Typechecker ||               ||            ||                   || 
     17The GHC branch is called {{{ghc-kinds}}}.  There is also a Haddock branch with the same name. 
     18 
     19The implementation will follow these steps (in bold is the first phase (parser, renamer, type checker, ...) that does not work): 
     20  1. '''[Type checker]''' Promotion of Haskell98 data types of kind star: {{{*}}}. 
     21  1. Kind polymorphism in Core. 
     22  1. Promotion of Haskell98 data types of first order kind: {{{* -> .. * -> *}}}. 
     23  1. Kind polymorphic data types, type families, and type classes. 
     24  1. Singleton types. 
     25  1. Built-in types. 
    2226 
    2327Promotion-related changelog: 
     
    2832    * Extend the parser to allow ''optionally'' ticked names like {{{Nat}}} or {{{'Bool}}} as atoms in kinds. 
    2933    * Extend {{{HsType name}}} with {{{HsPromotedConTy name}}} to represent ticked names. 
     34    * Extend the renamer to handle implicit promotion. 
    3035    * Extend {{{TyCon}}} with {{{PromotedDataTyCon}}} to represent promoted data constructors. 
    3136  * Rename {{{KindVar}}} which is used during type checking into {{{MetaKindVar}}}, since we will add kind variables later. 
     
    3439  * Use {{{HsDocContext}}} instead of {{{SDoc}}} to track renaming context. 
    3540 
    36 The stage1 compiler does not work, since there is some {{{undefined}}}s in the typechecker.  So you won't be able to build a stage2 or even run validate.  This is the first priority. 
    3741