  Egel is an untyped eager combinator toy language. Its primary purpose is to
showcase an abstract graph-rewriting semantics allowing a robust memory-safe
construction in C++. Though graph rewriters are normally implemented by
elaborate machines, this can mostly be avoided with a change in the
representation of term graphs. With an informal inductive argument, that
representation is shown to always form directed acyclic graphs. Moreover, this
graph semantics can trivially be extended to allow exception handling and cheap
concurrency. Egel, the interpreter, exploits this semantics with a
straight-forward mapping from combinators to reference-counted C++ objects.
