tree-diff: Diffing of (expression) trees.
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"}
[Skip to Readme]
Modules
[Index] [Quick Jump]
Downloads
- tree-diff-0.2.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0, 0.0.0.1, 0.0.1, 0.0.2, 0.0.2.1, 0.1, 0.2, 0.2.1, 0.2.1.1, 0.2.2, 0.3, 0.3.0.1, 0.3.1, 0.3.2 |
---|---|
Change log | ChangeLog.md |
Dependencies | aeson (>=1.4.6.0 && <1.5 || >=1.5.6.0 && <1.6 || >=2.0.0.0 && <2.1 || >=2.1.0.0 && <2.2), ansi-terminal (>=0.10 && <0.12), ansi-wl-pprint (>=0.6.8.2 && <0.7), base (>=4.5 && <4.18), base-compat (>=0.10.5 && <0.11 || >=0.11.0 && <0.13), bytestring (>=0.9.2.1 && <0.10 || >=0.10.0.2 && <0.11 || >=0.11.0.0 && <0.12), bytestring-builder (>=0.10.8.2.0 && <0.11), containers (>=0.4.2.1 && <0.5 || >=0.5.0.0 && <0.6 || >=0.6.0.1 && <0.7), deepseq (>=1.3.0.0 && <1.4 || >=1.4.0.0 && <1.5), generic-deriving (>=1.13.1 && <1.15), ghc-prim, hashable (>=1.2.7.0 && <1.3 || >=1.3.0.0 && <1.4 || >=1.4.0.1 && <1.5), nats (>=1.1.2 && <1.2), parsec (>=3.1.13.0 && <3.2), parsers (>=0.12.10 && <0.13), pretty (>=1.1.1.0 && <1.2), primitive (>=0.7.1.0 && <0.8), QuickCheck (>=2.14.2 && <2.15), scientific (>=0.3.6.2 && <0.4), semialign (>=1.2.0.1 && <1.3), semigroups (>=0.19.1 && <0.21), strict (>=0.4.0.1 && <0.5), tagged (>=0.8.6 && <0.9), text (>=1.2.3.0 && <1.3 || >=2.0 && <2.1), these (>=1.1.1.1 && <1.2), time (>=1.4 && <1.5 || >=1.5.0.1 && <1.6 || >=1.6.0.1 && <1.7 || >=1.8.0.2 && <1.9 || >=1.9.3 && <1.13), transformers (>=0.3.0.0 && <0.4 || >=0.4.2.0 && <0.5 || >=0.5.2.0 && <0.6), unordered-containers (>=0.2.8.0 && <0.3), uuid-types (>=1.0.3 && <1.1), vector (>=0.12.0.0 && <0.13 || >=0.13.0.0 && <0.14), void (>=0.7.3 && <0.8) [details] |
Tested with | ghc ==7.4.2 || ==7.6.3 || ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4 || ==9.0.2 || ==9.2.4 || ==9.4.1, ghcjs ==8.4 |
License | GPL-2.0-or-later |
Copyright | (c) 2017-2021 Oleg Grenrus |
Author | Oleg Grenrus <oleg.grenrus@iki.fi> |
Maintainer | Oleg.Grenrus <oleg.grenrus@iki.fi> |
Category | Data, Testing |
Home page | https://github.com/phadej/tree-diff |
Bug tracker | https://github.com/phadej/tree-diff/issues |
Source repo | head: git clone https://github.com/phadej/tree-diff.git |
Uploaded | by phadej at 2022-08-21T14:01:51Z |
Distributions | Arch:0.3.0.1, LTSHaskell:0.3.0.1, NixOS:0.3.0.1, Stackage:0.3.2 |
Reverse Dependencies | 6 direct, 13 indirect [details] |
Downloads | 27110 total (327 in the last 30 days) |
Rating | 2.25 (votes: 2) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2022-08-21 [all 1 reports] |