cabal-version: 2.2 name: tree-diff version: 0.3.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 , 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 maintainer: Oleg.Grenrus 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.5 || ==9.8.2 || ==9.10.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 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.21 , bytestring ^>=0.10.8.2 || ^>=0.11.0.0 || ^>=0.12.0.2 , containers ^>=0.6.0.1 || ^>=0.7 , 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 build-depends: , aeson ^>=2.2.0.0 , ansi-terminal ^>=1.1 , ansi-wl-pprint ^>=1.0.2 , hashable ^>=1.4.4.0 , parsers ^>=0.12.11 , primitive ^>=0.9.0.0 , QuickCheck ^>=2.14.2 || ^>=2.15 , scientific ^>=0.3.8.0 , semialign ^>=1.3.1 , 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 if (impl(ghc >=8) && !impl(ghc >=9.4)) build-depends: data-array-byte ^>=0.1.0.1 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-terminal , ansi-wl-pprint , base , parsec , primitive , QuickCheck , tagged , tree-diff , unordered-containers if (impl(ghc >=8) && !impl(ghc >=9.4)) build-depends: data-array-byte if impl(ghc <7.5) build-depends: ghc-prim -- extra dependencies build-depends: , tasty ^>=1.5 , tasty-golden ^>=2.3.5 , tasty-quickcheck ^>=0.10.3 , trifecta ^>=2.1.4 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 ^>=0.5