Implementing a Functional Language with Graph Reduction