let ( --- ) x y = if x <= y then x -- y else unfold x ~f:(fun prev -> if prev >= y then Some (prev, prev - 1) else None)