Package0.3.4DataTesting
tree-diff
Diffing of (expression) trees.
- Version0.3.4
- CategoryData, Testing
- LicenceGPL-2.0-or-later
- AuthorOleg Grenrus <oleg.grenrus@iki.fi>
- MaintainerOleg.Grenrus <oleg.grenrus@iki.fi>
- Homepagegithub.com/phadej/tree-diff
- Pinned byhackage tree-diff 0.3.4
- Sourcehackage.haskell.org/package/tree-diff-0.3.4
Modules
10 modules- Data.TreeDiff0Diffing of (expression) trees. Diffing arbitrary Haskell data. First we convert values to untyped
- Data.TreeDiff.Class6A ToExpr class.
- Data.TreeDiff.Expr6This module uses Expr for richer diffs than based on Tree.
- Data.TreeDiff.Golden2"Golden tests" using ediff comparison.
- Data.TreeDiff.List2A list diff.
- Data.TreeDiff.OMap6Map which remembers the fromList order.
- Data.TreeDiff.Parser1Utilities to parse Expr. Note: we don't parse diffs.
- Data.TreeDiff.Pretty17Utilities to pretty print Expr and EditExpr
- Data.TreeDiff.QuickCheck1QuickCheck related utilities.
- Data.TreeDiff.Tree3Tree diffing working on containers Tree.
Description
Common diff algorithm works on list structures:
diff :: Eq a => [a] -> [a] -> [Edit a]
This package works on trees.
treeDiff :: Eq a => Tree a -> Tree a -> Edit (EditTree a)
This package also provides a way to diff arbitrary ADTs, using Generics-derivable helpers.
This package differs from gdiff, in a two ways: tree-diff doesn't have patch function, and the "edit-script" is a tree itself, which is useful for pretty-printing.
>>> prettyEditExpr $ ediff (Foo 42 [True, False] "old") (Foo 42 [False, False, True] "new") Foo {fooBool = [-True, +False, False, +True], fooInt = 42, fooString = -"old" +"new"}
Depends on
23 packages- QuickCheck-2.15.0.1in this set
- aeson-2.2.3.0in this set
- ansi-terminal-1.1.3in this set
- ansi-wl-pprint-1.0.2in this set
- base-4.20.2.0with GHC
- bytestring-0.12.2.0with GHC
- containers-0.7with GHC
- deepseq-1.5.0.0with GHC
- hashable-1.4.7.0in this set
- parsec-3.1.18.0with GHC
- parsers-0.12.12in this set
- pretty-1.1.3.6with GHC
- primitive-0.9.1.0in this set
- scientific-0.3.8.0in this set
- semialign-1.3.1in this set
- strict-0.5.1in this set
- tagged-0.8.9in this set
- text-2.1.3with GHC
- these-1.2.1in this set
- time-1.12.2with GHC
- unordered-containers-0.2.21in this set
- uuid-types-1.0.6in this set
- vector-0.13.2.0in this set
Used by in this set · 0
Nothing in this set depends on it.