> This implements async await in Haskell via a library using Monads. Hint: you cannot do this in C via any library. You need to modify the language. If you are uneducated about Monads, you might think this is similar to some kind of C code. It is not!
it's still pretty much
> almost C-like syntax once again.
at no moment, not a single time, did I say in any way that I was talking about semantics but this is apparently a hill you wish to die on... so, by all means have fun !
Maybe you'll be more convinced by the exact text of the paper that introduced do-notation though ?
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.11....
let me quote it :
> Using monads gives functional programming an imperative flavour. Gofer supports a, so called, do notation which makes this imperative flavour more apparent.
or, let me rephrase that whole thing for you in a language that you seem to speak quite fluently:
class BasicallyC m where
(>>=) :: m a -> ( a -> m b) -> m b
(>>) :: m a -> m b -> m b
return :: a -> m a
fail :: String -> m a
class BasicallyC m => ImperativeFlavour m