Changes between Version 10 and Version 11 of TypeFunctionsTypeChecking


Ignore:
Timestamp:
Aug 15, 2006 6:17:24 PM (9 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsTypeChecking

    v10 v11  
    2929==== Synonym type constructors: `SynTyCon` ====
    3030
    31 To represent type families (which do not have a fixed right hand side), the type of `synTcRhs` changed from `Type` to `Maybe Type`.  Consequently, all functions that dependent on this field need to be extended.  In particular, `TcType.isTauTyCon` regards applications of type family constructors as ''tau types''.  (SPJ, is that ok?)
     31To represent type families (which do not have a fixed right hand side), the type of `synTcRhs` changed from `Type` to `SynTyConRhs` with
     32{{{
     33data SynTyConRhs = OpenSynTyCon | SynonymTyCon Type
     34}}}
     35Consequently, all functions that dependent on this field need to be extended.  In particular, `TcType.isTauTyCon` regards applications of type family constructors as ''tau types''.  (SPJ, is that ok?  Probably not...)
    3236
    33 Moreover, `BuildTyCls.buildSynTyCon`'s last argument is generalised from `Type` to `Either Kind Type`.  If this argument is `Just kind`, we have a type family; otherwise, we have an ordinary type synonym.
     37Moreover, `BuildTyCls.buildSynTyCon`'s last argument is generalised from `Type` to `Either Kind Type`.  If this argument is `Left kind`, we have a type family; otherwise, we have an ordinary type synonym.
     38
     39==== GHC API ====
     40
     41The GHC API has a new predicate `isOpenTyCon` with the understanding that it is illegal to invoke `synTyConDefn`, `synTyConRhs`, and `tyConDataCons` on type constructors that fulfil `isOpenTyCon`.
    3442
    3543=== Desugaring indexed data types ===