News for hackers. Stuff that matters.
Re:Rust’s async isn’t colored by pornel on Thursday March 11, 2021 @10:09AM (#26424790)
It doesn't, because you can wrap and unwrap Results at will, so you can change "color" of such functions, and you're never irrecoverably stuck with just one color.

The original article's key point was about async forcing refactoring of all functions in the entire call graph just because a leaf function needed it. This doesn't apply to async or options in Rust, because Rust functions can use these features without exposing that fact to their callers.

Re:Rust’s async isn’t colored by the_gipsy on Thursday March 11, 2021 @10:16AM (#26424869)
That's what I'm saying, you can change the "color" of all these including async, but you still have to do that.

There is no single Monad type from which you can build and chain, you always have to color some calls.

Re:Rust’s async isn’t colored by pornel on Thursday March 11, 2021 @10:38AM (#26425133)
No, you can abstract over "color".

You can implement a trait that lets you call both sync and async functions in the same way. You can with the same code and same syntax, get results of either `Fn()->T` or `Fn()->Future<Output=T>`.

Re:Rust’s async isn’t colored by the_gipsy on Thursday March 11, 2021 @12:45PM (#26426793)
You are right, it doesn't "poison" your code, you can always wrap or map it.

I guess I was just going off some tangent.