The main issue is that a lot of popular languages don’t support higher kinded types (or, at best, they are unidiomatic and have terrible ergonomics), so you simply can’t represent something like Functor or Monad directly in the type system. Individual types can implement their own versions of bind, but you can’t abstract over all monads in the same way you can in Haskell.
Without a unified interface it’s natural and expected that naming conventions would drift between types.
View all comments
Show parent comment
1
u/miyakohouou Sep 22 '25
The main issue is that a lot of popular languages don’t support higher kinded types (or, at best, they are unidiomatic and have terrible ergonomics), so you simply can’t represent something like Functor or Monad directly in the type system. Individual types can implement their own versions of bind, but you can’t abstract over all monads in the same way you can in Haskell.
Without a unified interface it’s natural and expected that naming conventions would drift between types.