A concrete example
Revise our expression classes to behave like values, efficiently
- Copying an expression should not copy the underlying tree
- Memory management should be automatic
Hide the type hierarchy (because values are not objects, so where would the hierarchy be useful?)