Generic programming with uniplate instead of fold library.
Unified binder structure.
Single binding lets (letrec with top level bindings).