rudimentary support for fn* special forms
refactor sheet transition fns for concision and clarity
cleanup: use update-in instead of assoc where possible