reduce takes a closure argument, but does not explain the order of its arguments. The type signature does not help clarify the order as it would for fold. Also note that fold and try_fold do document the closure.
See: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.reduce