Portability | non-portable (GHC Extensions) |
---|---|

Stability | experimental |

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

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 `HEqF f`

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

.

heqMod :: (HEqF f, HFunctor f, HFoldable f) => f a i -> f b i -> Maybe [(A a, A 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.