fn f(value: u32) -> ConvergeTo<u32, u32> {
    if value >= 5 && value <= 6 {
        ConvergeTo::Right(value)
    } else {
        ConvergeTo::Left(value)
    }
}
// NB: output held by ConvergeTo does *not* need to be of the same type as
// the value. In this example, it just happens to be the case.
output held by ConvergeTo does *not* need to be of the same type as
the value. In this example, it just happens to be the case.
output held by ConvergeTo does * not * need to be of the same type as the value . In this example it just happens to be the case .
fn f(value: u32) -> ConvergeTo<u32, u32> {
    if value >= 5 && value <= 6 {
        ConvergeTo::Right(value)
    } else {
        ConvergeTo::Left(value)
    }
}
fn f ( value : u32 ) -> ConvergeTo < u32 , u32 > { if value >= 5 && value <= 6 { ConvergeTo :: Right ( value ) } else { ConvergeTo :: Left ( value ) } }
NB: output held by ConvergeTo does *not* need to be of the same type as
the value.
NB : output held by ConvergeTo does * not * need to be of the same type as the value .
value
u32