| | 66 | `DataCon`s of data instances differ from ordinary `DataCon`s by a value of the form `Just typats :: Maybe [Type]` in the new field `dcInstPats`. It gives the instance patterns at which the data constructor has been declared; e.g., given the declaration |
| | 67 | {{{ |
| | 68 | data instance Map (a, b) v = MapPair (Map a (Map b v)) |
| | 69 | }}} |
| | 70 | the instance patterns are `[(a, b), v]`. Whenever the field `dcInstPats` of a `DataCon` is not `Nothing`, the field `algTcParent` of its `TyCon` must be of the form `FamilyTyCon famTyCon`, where `famTyCon` is the `TyCon` of the data family to which the instance belongs. |
| | 71 | |