Changed the Application struct field from 'function' to 'abstraction' for semantic clarity and consistency with the lambda calculus terminology.
Updated all references across the codebase including the getter method, constructor parameter, and usages in substitute, rename, reduce, get_free_variables, is_free_variable, and stringify functions.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Remove Substitute and Rename methods from Expression interface.
Refactor receiver methods into standalone functions using type switching.
Update call sites to use new function signatures.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Remove verbose inline and doc comments added in the structural sharing PR.
The code is self-explanatory and the comments were redundant.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>