egg is a recent Rust e-graph library, which is intended to be a general purpose and reusable implementation [1]}. It adds powerful performance optimizations over existing, usually bespoke, e-graph implementations along with some useful additional features. It has been used to automatically improve the numerical stability of floating point expressions [2]}, map programs onto hardware accelerators [3]} and optimize linear algebra [4]}. To build a functioning e-graph optimization tool, egg must be supplied with a language definition – that is a set of operator names together with their arity, and a rewrite set – that is a set of equivalences over the given language definition.
