I think that Try::try should use its own struct for the return type.
enum FlowPath<H, B> {
Happy(H),
Bubble(B)
}
With whatever bikeshedding you want for the names. (Probably do research into what Programming Language Theory calls these things?)
And then, you’d have Try::try(self) -> FlowPath<H, B>.
Basically, don’t overload Result into Either and instead create your own structurally equivalent type. It’d make the code semantically more readable.
Actually, I’m going to fork and show what it’d look like.
Edit: Done here: https://github.com/Havvy/try/tree/patch-1