Unboxed closures aren't any harder to reason about than boxed closures, and any function that accepts an unboxed closure accepts a boxed closure, too, which is why library authors should almost always prefer accepting unboxed closures (as withoutboats said in another comment.)