It's currently `f: |T| -> T, seed: T` but the convention is (and it is more readable) to have the closure last, i.e. `seed: T, f: |T| -> T`.