Changes between Version 10 and Version 11 of TypeFunctionsTypeChecking


Ignore:
Timestamp:
Aug 15, 2006 6:17:24 PM (8 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 ===