use dialectic::prelude::*; use dialectic::types::*; use static_assertions::assert_type_eq_all; #[allow(dead_code)] type LabelExample = Session! { 'outer: loop { send i64; loop { recv bool; offer { 0 => break 'outer, 1 => continue 'outer, 2 => break, 3 => continue, 4 => send String, }; send bool; }; recv i64; } }; assert_type_eq_all!( LabelExample, Loop< Send< i64, Loop< Recv< bool, Offer<( Done, Continue<1>, Recv>, Continue<0>, Send>> )>, >, >, >, >, );