Copyright | (c) Patrick Bahr, 2011 |
---|---|

License | BSD3 |

Maintainer | Patrick Bahr <paba@diku.dk> |

Stability | experimental |

Portability | non-portable (GHC Extensions) |

Safe Haskell | None |

Language | Haskell98 |

This module defines equality for (higher-order) signatures, which lifts to equality for (higher-order) terms and contexts. All definitions are generalised versions of those in Data.Comp.Equality.

# Documentation

Signature equality. An instance `EqHF f`

gives rise to an instance
`KEq (HTerm f)`

.

heqMod :: (EqHF f, HFunctor f, HFoldable f) => f a i -> f b i -> Maybe [(E a, E b)] Source

This function implements equality of values of type `f a`

modulo
the equality of `a`

itself. If two functorial values are equal in this
sense, `eqMod`

returns a `Just`

value containing a list of pairs
consisting of corresponding components of the two functorial
values.