Fix reductions to have correct types
Add named arrow support.