maxsharing: Maximal sharing of terms in the lambda calculus with letrec

Parses a lambda-letrec term; transforms it into a first-order
term graph representation; minimises the graph; reads back a
lambda-letrec term which has the same unfolding as the original
term, but exhibits maximal sharing.
If executable "dot" from graphviz is available, the graphs are
displayed (tested for Linux).
The approach is described in a technical report:
http:/arxiv.orgabs/1401.1460