tree-diff-0.3.5: tree-diff.cabal
cabal-version: 2.2
name: tree-diff
version: 0.3.5
synopsis: Diffing of (expression) trees.
category: Data, Testing
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 <http://hackage.haskell.org/package/gdiff 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"}
@
homepage: https://github.com/phadej/tree-diff
bug-reports: https://github.com/phadej/tree-diff/issues
license: GPL-2.0-or-later
license-file: LICENSE
author: Oleg Grenrus <oleg.grenrus@iki.fi>
maintainer: Oleg.Grenrus <oleg.grenrus@iki.fi>
copyright: (c) 2017-2021 Oleg Grenrus
build-type: Simple
extra-source-files:
ChangeLog.md
README.md
tested-with:
GHC ==8.6.5
|| ==8.8.4
|| ==8.10.7
|| ==9.0.2
|| ==9.2.8
|| ==9.4.8
|| ==9.6.7
|| ==9.8.4
|| ==9.10.3
|| ==9.12.2
|| ==9.14.1
extra-source-files:
fixtures/exfoo.expr
fixtures/MyInt1.expr
fixtures/MyInt2.expr
fixtures/MyInt3.expr
fixtures/Positional.expr
source-repository head
type: git
location: https://github.com/phadej/tree-diff.git
flag base-ge-4-17
description: @base >=4.17@ (GHC-9.4)
default: True
manual: False
library
exposed-modules:
Data.TreeDiff
Data.TreeDiff.Class
Data.TreeDiff.Expr
Data.TreeDiff.Golden
Data.TreeDiff.List
Data.TreeDiff.OMap
Data.TreeDiff.Parser
Data.TreeDiff.Pretty
Data.TreeDiff.QuickCheck
Data.TreeDiff.Tree
-- GHC boot libraries
build-depends:
, base >=4.12.0.0 && <4.23
, bytestring ^>=0.10.8.2 || ^>=0.11.0.0 || ^>=0.12.0.2
, containers ^>=0.6.0.1 || ^>=0.7 || ^>=0.8
, deepseq ^>=1.4.4.0 || ^>=1.5.0.0
, parsec ^>=3.1.13.0
, pretty ^>=1.1.1.0
, text ^>=1.2.3.0 || ^>=2.0 || ^>=2.1
, time ^>=1.8.0.2 || ^>=1.9.3 || ^>=1.10 || ^>=1.11 || ^>=1.12 || ^>=1.14 || ^>=1.16
build-depends:
, aeson ^>=2.2.0.0
, ansi-terminal ^>=1.1
, ansi-wl-pprint ^>=1.0.2 || ^>=1.1.1
, hashable ^>=1.4.4.0 || ^>=1.5.0.0
, parsers ^>=0.12.11
, primitive ^>=0.9.0.0
, QuickCheck ^>=2.14.2 || ^>=2.15 || ^>=2.16.0.0 || ^>=2.18.0.0
, scientific ^>=0.3.8.0
, semialign ^>=1.3.1 || ^>=1.4
, strict ^>=0.5
, tagged ^>=0.8.8
, these ^>=1.2.1
, unordered-containers ^>=0.2.20
, uuid-types ^>=1.0.6
, vector ^>=0.13.1.0
other-extensions:
CPP
ConstraintKinds
DefaultSignatures
FlexibleContexts
GADTs
RankNTypes
ScopedTypeVariables
TypeOperators
hs-source-dirs: src
default-language: Haskell2010
test-suite tree-diff-test
default-language: Haskell2010
type: exitcode-stdio-1.0
main-is: Tests.hs
hs-source-dirs: tests src-diff
ghc-options: -Wall -threaded
other-modules: RefDiffBy
-- dependencies from library
build-depends:
, ansi-wl-pprint
, base
, parsec
, primitive
, QuickCheck
, tree-diff
, unordered-containers
if !flag(base-ge-4-17)
build-depends: data-array-byte >=0.1.0.1 && <0.2
-- extra dependencies
build-depends:
, tasty ^>=1.5
, tasty-golden ^>=2.3.5
, tasty-quickcheck ^>=0.10.3 || ^>=0.11
, trifecta ^>=2.1.4
if flag(base-ge-4-17)
build-depends: base >=4.17
else
build-depends: base <4.17
benchmark tree-diff-bench
default-language: Haskell2010
type: exitcode-stdio-1.0
main-is: tree-diff-bench.hs
hs-source-dirs: bench
ghc-options: -Wall -threaded
-- dependencies from library
build-depends:
, base
, deepseq
, tree-diff
-- extra dependencies
build-depends:
, criterion ^>=1.6.3.0
, Diff ^>=1.0