so would the best idea be to look in `base/reduce.jl` and mimic the type stable bits of iteration there?  That should satisfy all reasonable generalizations?