The tree-diff package

[ Tags: bsd3, data, library ] [ Propose Tags ]

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]

Properties

Versions 0, 0.0.0.1
Change log ChangeLog.md
Dependencies aeson (>=1.2.1.0 && <1.3), ansi-terminal (>=0.6.3.1 && <0.8), ansi-wl-pprint (>=0.6.8.1 && <0.7), base (>=4.7 && <4.11), base-compat (>=0.9.3 && <0.10), bytestring (>=0.10.4.0 && <0.11), containers (>=0.5.5.1 && <0.6), generics-sop (>=0.3.1.0 && <0.4), hashable (>=1.2.6.1 && <1.3), MemoTrie (>=0.6.8 && <0.7), nats (>=1.1.1 && <1.2), parsec (>=3.1.11 && <3.2), parsers (>=0.12.7 && <0.13), pretty (>=1.1.1.1 && <1.2), QuickCheck (>=2.10.0.1 && <2.11), scientific (>=0.3.5.2 && <0.4), semigroups (>=0.18.3 && <0.19), tagged (>=0.8.5 && <0.9), text (>=1.2.2.2 && <1.3), time (>=1.4.2 && <1.9), transformers (>=0.3.0.0 && <0.6), unordered-containers (>=0.2.8.0 && <0.3), uuid-types (>=1.0.3 && <1.1), vector (==0.12.*), void (>=0.7.2 && <0.8) [details]
License BSD3
Copyright (c) 2017 Oleg Grenrus
Author Oleg Grenrus <oleg.grenrus@iki.fi>
Maintainer Oleg.Grenrus <oleg.grenrus@iki.fi>
Category Data
Home page https://github.com/phadej/tree-diff
Bug tracker https://github.com/phadej/tree-diff/issues
Source repository head: git clone https://github.com/phadej/tree-diff.git
Uploaded Fri Nov 10 23:08:51 UTC 2017 by phadej
Distributions NixOS:0.0.0.1, Stackage:0.0.0.1
Downloads 75 total (34 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-11-10 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for tree-diff-0.0.0.1

[back to package description]

tree-diff

Diffing of (expression) trees.

Examples

tree-diff displays pretty diffs of tree data:

Because of its untyped internal type, it copes with type changes:

As a bonus, multiline Strings and Text are diffed linewise: