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 , 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-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