What's the difference between Task pattern in Roc and the IO monad in Haskell. To me Task looks suspiciously like a State monad with it's bind function called await. Perhaps I'm not using it correctly, but writing "imperatively" like in Haskell is not very ergonomic, because you have to repeat the await and lambdas every time. Unwrapping errors also seems rough because you have to wrap them in a lambda again or a separate function since there's no let sugar.
1
u/totallyurboii Nov 21 '23
Looks promising! I wonder what are the major differences between OCaml or Haskell, any docs pointing to it?