Maintainer | bastiaan.heeren@ou.nl |
---|---|

Stability | provisional |

Portability | portable (depends on ghc) |

Safe Haskell | None |

Language | Haskell98 |

Compute the difference of two terms generically, taking associativity into account.

- difference :: IsTerm a => a -> a -> Maybe (a, a)
- differenceEqual :: IsTerm a => (a -> a -> Bool) -> a -> a -> Maybe (a, a)
- differenceWith :: View Term a -> a -> a -> Maybe (a, a)
- differenceEqualWith :: View Term a -> (a -> a -> Bool) -> a -> a -> Maybe (a, a)

# Documentation

difference :: IsTerm a => a -> a -> Maybe (a, a) Source

differenceEqual :: IsTerm a => (a -> a -> Bool) -> a -> a -> Maybe (a, a) Source

This function returns the difference, except that the returned terms should be logically equivalent. Nothing can signal that there is no difference, or that the terms to start with are not equivalent.

differenceWith :: View Term a -> a -> a -> Maybe (a, a) Source