use mpstthree::binary::struct_trait::end::End; use mpstthree::binary::struct_trait::recv::Recv; use mpstthree::binary::struct_trait::send::Send; use std::marker; // Bug with the constraint checker. enum CalcOp2<N: marker::Send> { More(Send<i64, Recv<i64, NiceCalcServer2<N>>>), More2(Recv<i64, Send<i64, NiceCalcServer2<N>>>), Stop(Send<i64, End>), } type NiceCalcServer2<N> = Recv<CalcOp2<N>, End>; fn main() { let _ = NiceCalcServer2<i32>::new(); }