GPL-2.0-or-later licensed by Oleg Grenrus
Maintained by Oleg.Grenrus
This version can be pinned in stack with:tree-diff-0.2@sha256:57d4bc9afddbcdf55ea0ece51013171a3de021aba4164195ab2b670d0dd93706,4804


Diffing of (expression) trees.


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:



  • Change the pretty printing to use less horizontal space. Pretty datastructure is changed.
  • Change Expr to use OMap; pretty-printing preserves field order.
  • Add strict and these instances
  • Add Eq and NFData (Edit a) instances.
  • Bump lower bounds


  • Support GHC-7.4 … 8.8 (use allow-newer for GHC-8.8-alpha).
  • Use raw GHC.Generics (drop generics-sop dependency)
  • Use own memoising (Vector lookup, drop MemoTrie dependency)
  • Singleton data-types (both data and newtypes) are printed in App form (i.e. no-record).
  • Change license to GPL-2.0-or-later

  • Support semigroups-0.19, hashable-1.3 and generics-sop-0.5


  • Print compact diffs
  • Add ToExpr instance for ShortByteString


  • Use BS.readFile and BS.writeFile in ediffGolden. This makes files read and written in UTF8 independently of locale. Fixes builds on appveyor.

  • Move to build-type: Simple


  • First version. Released on an unsuspecting world.