Changes between Version 14 and Version 15 of GhcKinds


Ignore:
Timestamp:
Aug 26, 2011 12:41:37 PM (4 years ago)
Author:
ia0
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GhcKinds

    v14 v15  
    1717== Implementation ==
    1818
    19 The 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/git-mirrors/hoopl/].
    20 
    21 The implementation will follow these steps (in bold is the first phase (parser, renamer, type checker, ...) that does not work):
     19The GHC branch is called {{{ghc-kinds}}}.  There is also a branch with the same name for haddock and the testsuite. The implementation will follow these steps (in bold is the first phase (parser, renamer, type checker, ...) that does not work):
    2220  1. Promotion of Haskell98 data types of kind star: {{{*}}}.
    2321  1. Promotion of Haskell98 data types of first order kind: {{{* -> .. * -> *}}}. It involves kind polymorphism.
    24   1. '''[*]''' Kind polymorphic data types, type families, and type classes.
     22  1. '''[theory design]''' Kind polymorphic data types, type families, and type classes.
    2523  1. Singleton types.
    2624  1. Built-in types.
    2725
    2826Promotion-related changelog:
     27  * Extend {{{TyCon}}} with {{{PromotedDataTyCon}}} to have data constructors in type constructors.
     28  * Extend the parser, renamer, type and kind checker, and core-lint accordingly.
     29
     30
     31Not promotion-related changelog:
    2932  * Change the kind representation in {{{HsSyn}}} from {{{Kind}}} to {{{LHsKind name}}} adding some {{{PostTcKind}}} when necessary.
    3033    * Rename {{{rnHsType}}} into {{{rnHsTyKi}}} and parametrize with a boolean to know if we are renaming a type or a kind.
    31   * Allow promoted data and type constructors:
    32     * Extend {{{TyCon}}} with {{{PromotedDataTyCon}}} to have data constructors in type constructors.
    33     * Extend the parser, renamer, type and kind checker, and core-lint accordingly.
     34  * Use {{{HsDocContext}}} instead of {{{SDoc}}} to track renaming context.
     35  * Kind check and type check by strongly connected components, instead of kind checking the whole module, and then type checking it.  This implies that some modules now need additional kind annotations (since each strongly component gets zonkTcKindToKind before going to the next one).
    3436  * Rename {{{KindVar}}} which is used during type checking into {{{MetaKindVar}}}.
    3537
    36 Not promotion-related changelog:
    37   * Use {{{HsDocContext}}} instead of {{{SDoc}}} to track renaming context.
    38   * Kind check and type check by strongly connected components, instead of kind checking the whole module, and then type checking it.  This implies that some modules now need additional kind annotations (since each strongly component gets zonkTcKindToKind before going to the next one).
    39