- class SimpleWitness w where
- matchWitness :: w a -> w b -> Maybe (EqualType a b)

# Documentation

class SimpleWitness w whereSource

`w`

is a simple witness type if each value witnesses to a single type. Thus if two values are the same, then they have the same type.

matchWitness :: w a -> w b -> Maybe (EqualType a b)Source

If the two values are the same, then `a`

and `b`

are the same type.

As an equivalence relation, `matchWitness`

must be reflexive, commutative, and transitive.

SimpleWitness Nat | |

SimpleWitness w => SimpleWitness (RepWitness w) | |

SimpleWitness w => SimpleWitness (ListType w) |