Graph Narrowing to Implement a Functional Logic Language