Re:Functor, Applicative, and Monad
by lkitching on Wednesday September 18, 2019 @10:16AM
(#21005657)
I don't think this is true, do notation (see https://www.haskell.org/onlinereport/haskell2010/haskellch3....) specifically depends on the Monad typeclass and exists as syntactic sugar for monadic operators:
> A do expression provides a more conventional syntax for monadic programming
Re:Functor, Applicative, and Monad
by hope-striker on Wednesday September 18, 2019 @01:09PM
(#21007480)
The Haskell 2010 Report mentions monads all over the place, both in the language and library sections. A Monad instance is literally the only way to do IO in standard Haskell. Monads get special syntax in the form of do-notation and, in an extension, monad comprehensions. It's undeniably a core feature of the language.
A pedantic distinction without a practical difference. Everyone who learns Haskell learns about Monads.
Is do notation a language feature?
"Haskell's built in support for monads is split among the standard prelude, which exports the most common monad functions, and the Monad module, which contains less-commonly used monad functions. The individual monad types are each in their own libraries and are the subject of Part II of this tutorial."
https://wiki.haskell.org/All_About_Monads#Monad_support_in_H...
The fact that monads are used to implement parts of the language doesn't make them a core part of it. Techniques used in implementation aren't the same as language features.