This works just fine...
type Foo = Recv<Bar, End>;
enum Bar {Baz(Recv<i64, Send<i64, Foo>>)}
This fails with "overflow evaluating the requirement"!
type Foo = Recv<Bar, End>;
enum Bar {Baz(Send<i64, Recv<i64, Foo>>)}
But the requirements on Send and Recv are identical!
I've attached a more complete example below. Is there anything I'm missing on why this happens?
https://gist.github.com/wenkokke/ad8a7299c305d212473b9b5a4ad804da