generate fn literals using fn*

they don't need destructuring.
add destructuring for fn
fix the tests.