Changes between Version 7 and Version 8 of GhcKinds


Ignore:
Timestamp:
Aug 9, 2011 3:27:36 PM (4 years ago)
Author:
ia0
Comment:

Step 1

Legend:

Unmodified
Added
Removed
Modified
  • GhcKinds

    v7 v8  
    1515== Implementation == 
    1616 
    17 The GHC branch is called {{{ghc-kinds}}}.  There is also a Haddock branch with the same name. 
     17The GHC branch is called {{{ghc-kinds}}}.  There is also a Haddock branch with the same name.  Hoopl needs a kind annotation available on a branch in [http://darcs.haskell.org/packages/hoopl.git/]. 
    1818 
    1919The 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. 
     20  1. Promotion of Haskell98 data types of kind star: {{{*}}}. 
     21  1. '''[]''' Kind polymorphism in Core. 
    2222  1. Promotion of Haskell98 data types of first order kind: {{{* -> .. * -> *}}}. 
    2323  1. Kind polymorphic data types, type families, and type classes. 
     
    2929    * Rename {{{rnHsType}}} into {{{rnHsTyKi}}} and parametrize with a boolean to know if we are renaming a type or a kind. 
    3030  * Allow promoted data and type constructors: 
    31     * Extend the parser to allow ticked names like {{{'Zero}}} or {{{'Nat.Succ}}} as atoms in types. 
    32     * Extend the parser to allow ''optionally'' ticked names like {{{Nat}}} or {{{'Bool}}} as atoms in kinds. 
     31    * Extend the parser to allow optionally ticked names as atoms in types and kinds. 
    3332    * Extend {{{HsType name}}} with {{{HsPromotedConTy name}}} to represent ticked names. 
    3433    * Extend the renamer to handle implicit promotion. 
    35     * Extend {{{TyCon}}} with {{{PromotedDataTyCon}}} to represent promoted data constructors. 
     34    * Extend {{{TyCon}}} with {{{PromotedDataTyCon}}} and {{{PromotedTypeTyCon}}} to represent promoted data and type constructors. 
     35    * Extend the type checker accordingly. 
    3636  * Rename {{{KindVar}}} which is used during type checking into {{{MetaKindVar}}}, since we will add kind variables later. 
    3737