tracetree: Visualize Haskell data structures as edge-labeled trees

[ bsd3, development, library ] [ Propose Tags ]

The tracetree library can be used to conveniently write Haskell data structures as trees represented as JSON files. These JSON files can then be inspected with any JSON viewer; the JSON viewer's functionality to collapse part of the JSON tree can be particularly convenient when exploring large objects.

Additionally, the ttrender executable can be used to render these JSON trees as .svg or .png files, and provides various command line flags for controlling the layout of the tree (colour, orientation, hiding nodes, etc.).

The tracetree library and ttrender executable are independent components; if you don't want to add the dependency on tracetree to your project, you can just generate the .JSON files directly in your code; the format is not complicated (indeed, you can create them by hand or post-process previously exported .JSON files).

Versions [faq],,
Change log
Dependencies base (>=4.8 && <5), bifunctors (>=4.2 && <5.6), colour (==2.3.*), containers (==0.5.*), diagrams-cairo (>=1.3 && <1.5), diagrams-contrib (>=1.3 && <1.5), diagrams-lib (>=1.3 && <1.5), json (==0.9.*), mtl (==2.2.*), optparse-applicative (>=0.11 && <0.15), parsec (==3.1.*), regex-posix (==0.95.*), SVGFonts (>=1.5 && <1.7), tracetree, transformers (>=0.4 && <0.6) [details]
License BSD-3-Clause
Copyright Copyright 2015 Well-Typed LLP
Author Edsko de Vries
Category Development
Source repo head: git clone
Uploaded by EdskoDeVries at 2018-04-06T07:28:48Z
Distributions NixOS:
Executables ttrender
Downloads 1860 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs pending
Build status unknown [no reports yet]


  • Debug
    • Trace
      • Debug.Trace.Tree
        • Debug.Trace.Tree.Assoc
        • Debug.Trace.Tree.Edged
        • Debug.Trace.Tree.Generic
        • Debug.Trace.Tree.Rose
        • Debug.Trace.Tree.Simple



Build executable to render the trees (requires Cairo)


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees