@hackage visual-graphrewrite0.4.0.1

Visualize the graph-rewrite steps of a Haskell program

This tool intended to help the graph rewriting process of Haskell expressions.

This is the initial/experimental version. Usage: ./rewrite

  • The program reads the source, which can contain only simple function definitions. The following definitions may be used: (++), div, mod, eqInt, not, Cons, Nil, succ, True, False, sin.
  • The source is converted into a graph rewrite system.
  • The program opens a window. Press space to see the right-hand-sides of the graph rewrite rules.

Short term plans (this version is expected at the end of May):

  • Allow data declarations.
  • Allow more built-in functions.

Future plans:

  • Allow type classes.
  • Allow module imports.
  • Allow partial applications and slices.
  • Better handling of higher order functions.
  • Pattern parsing improvements.
  • Read the Prelude.
  • Extend to work with any Haskell 98 source file.
  • Control the graph rewrite process (control over which functions are atomic).
  • Control the visualization of the graph (some parts will be folded).