/// Given a choice between sessions `S1` and `S1`, choose the second option.
Given a choice between sessions `S1` and `S1`, choose the second option.
Given a choice between sessions ` S1 ` and ` S1 ` choose the second option .
pub fn choose_right<'a, S1, S2>(s: Choose<S1, S2>) -> S2
where
    S1: Session + 'a,
    S2: Session + 'a,
{
    let (here, there) = S2::new();
    let s = send(Either::Right(there), s);
    cancel(s);
    here
}
pub fn choose_right < ' a , S1 , S2 > ( s : Choose < S1 , S2 > ) -> S2 where S1 : Session + ' a , S2 : Session + ' a , { let ( here , there ) = S2 :: new ( ) ; let s = send ( Either :: Right ( there ) , s ) ; cancel ( s ) ; here }
Given a choice between sessions `S1` and `S1`, choose the second option.
Given a choice between sessions ` S1 ` and ` S1 ` choose the second option .
s
Choose<S1, S2>