Changes between Version 49 and Version 50 of TypeFunctionsTypeChecking


Ignore:
Timestamp:
Apr 25, 2007 6:22:17 AM (8 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsTypeChecking

    v49 v50  
    3333=== Synonym type constructors: `SynTyCon` === 
    3434 
    35 To represent type families (which do not have a fixed right hand side), the type of `synTcRhs` changed from `Type` to `SynTyConRhs` with 
     35To represent type families (which do not have a fixed right hand side), the type of `synTcRhs` changed from just `Type` to `SynTyConRhs` with 
    3636{{{ 
    37 data SynTyConRhs = OpenSynTyCon Kind    -- *result* kind 
    38                  | SynonymTyCon Type    -- rhs of ordinary synonym 
     37data SynTyConRhs  
     38  = OpenSynTyCon Kind (Maybe [Int]) -- *result* kind & positions 
     39  | SynonymTyCon Type               -- rhs of ordinary synonym 
    3940}}} 
    4041Consequently, all functions that dependent on this field had to be extended.  In particular, `TcType.isTauTyCon` regards applications of type family constructors as ''tau types'', which is why we need to require that the right hand side of each `type instance` declaration is also a tau type.  As a result, `BuildTyCls.buildSynTyCon`'s last argument now also takes a value of type `SynTyConRhs`.