tree-diff-0.1: tree-diff.cabal
cabal-version: 2.2
name: tree-diff
version: 0.1
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-2019 Oleg Grenrus
build-type: Simple
extra-source-files:
README.md
ChangeLog.md
tested-with:
GHC ==8.8.1 || ==8.6.5 || ==8.4.4 || ==8.2.2 || ==8.0.2 || ==7.10.3 || ==7.8.4 || ==7.6.3 || ==7.4.2
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
library
exposed-modules:
Data.TreeDiff
Data.TreeDiff.Class
Data.TreeDiff.Expr
Data.TreeDiff.Golden
Data.TreeDiff.List
Data.TreeDiff.Parser
Data.TreeDiff.Pretty
Data.TreeDiff.QuickCheck
Data.TreeDiff.Tree
-- GHC boot libraries
build-depends:
, base >=4.5 && <4.13
, bytestring ^>=0.9.2.1 || ^>=0.10.0.2
, containers ^>=0.4.2.1 || ^>=0.5.0.0 || ^>=0.6.0.1
, parsec ^>=3.1.13.0
, pretty ^>=1.1.1.0
, text ^>=1.2.3.0
, time ^>=1.4 || ^>=1.5.0.1 || ^>=1.6.0.1 || ^>=1.8.0.2
build-depends:
, aeson ^>=1.4.0.0
, ansi-terminal ^>=0.8.2 || ^>=0.9.1
, ansi-wl-pprint ^>=0.6.8.2
, base-compat ^>=0.10.5
, bytestring-builder ^>=0.10.8.2.0
, hashable ^>=1.2.7.0 || ^>=1.3.0.0
, parsers ^>=0.12.10
, QuickCheck ^>=2.12.6.1 || ^>=2.13.1
, scientific ^>=0.3.6.2
, tagged ^>=0.8.6
, unordered-containers ^>=0.2.8.0
, uuid-types ^>=1.0.3
, vector ^>=0.12
if impl(ghc <7.5)
build-depends: ghc-prim
if !impl(ghc >=8.0)
build-depends: semigroups >=0.18.5 && <0.20
if !impl(ghc >=7.8)
build-depends: generic-deriving ^>=1.12.4
if !impl(ghc >=7.10)
build-depends:
, nats ^>=1.1.2
, transformers ^>=0.3.0.0 || ^>=0.4.2.0 || ^>=0.5.2.0
, void ^>=0.7.3
other-extensions:
CPP
ConstraintKinds
DefaultSignatures
FlexibleContexts
GADTs
RankNTypes
ScopedTypeVariables
TypeOperators
hs-source-dirs: src
default-language: Haskell2010
test-suite test
default-language: Haskell2010
type: exitcode-stdio-1.0
main-is: Tests.hs
hs-source-dirs: tests
ghc-options: -Wall -threaded
build-depends:
, ansi-terminal
, ansi-wl-pprint
, base
, base-compat
, parsec
, QuickCheck
, tasty ^>=1.2
, tasty-golden ^>=2.3.1.1
, tasty-quickcheck ^>=0.10.1
, tagged
, tree-diff
, trifecta ^>=2
if impl(ghc <7.5)
build-depends: ghc-prim