this post was submitted on 11 Feb 2024
33 points (100.0% liked)
Rust
6034 readers
3 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Yes, my thoughts exactly.
This problem is not solved by monads, but by higher kinded types in general in languages like Haskell. They give you a uniform way to be generic over effects like async (
Async<A>
) vs sync (Identity<A>
). Both of these can be treated as (F<A>
) for allA
. So a genericInto
would look like the following, and no special syntax or semantics would be needed. The type system (if sound) would prevent you from misusing a trait like this.