@hackage visual-graphrewrite0.3.2

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):

  • Show the graph rewrite process instead of the rhs of rewrite rules.
  • Allow tuples and lists.
  • Allow data declarations.
  • Allow more built-in functions.
  • User defined start expression for the graph reduction.
  • To be usable as a library.

Plans for the final version:

  • Allow type classes.
  • Allow module imports.
  • 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).