Monad -package:ghc
The 
Monad class defines the basic operations over a
monad, a concept from a branch of mathematics known as
category theory. From the perspective of a Haskell programmer,
however, it is best to think of a monad as an 
abstract datatype
of actions. Haskell's 
do expressions provide a convenient
syntax for writing monadic expressions.
Instances of 
Monad should satisfy the following:
Furthermore, the 
Monad and 
Applicative operations should
relate as follows:
The above laws imply:
and that 
pure and (
<*>) satisfy the applicative
functor laws.
The instances of 
Monad for 
List, 
Maybe and
IO defined in the 
Prelude satisfy these laws.
The environment in which most criterion code executes.
hedgehog Hedgehog.Internal.Prelude, 
base-compat Control.Monad.Compat Control.Monad.Compat Prelude.Compat, 
protolude Protolude.Monad, 
relude Relude.Monad.Reexport, 
haskell-gi-base Data.GI.Base.ShortPrelude, 
rio RIO.Prelude.Types, 
Cabal-syntax Distribution.Compat.Prelude, 
universum Universum.Monad.Reexport, 
ihaskell IHaskellPrelude, 
numhask NumHask.Prelude, 
base-compat-batteries Control.Monad.Compat, 
clash-prelude Clash.HaskellPrelude The 
Monad class defines the basic operations over a
monad, a concept from a branch of mathematics known as
category theory. From the perspective of a Haskell programmer,
however, it is best to think of a monad as an 
abstract datatype
of actions. Haskell's 
do expressions provide a convenient
syntax for writing monadic expressions.
Instances of 
Monad should satisfy the following:
Furthermore, the 
Monad and 
Applicative operations should
relate as follows:
The above laws imply:
and that 
pure and (
<*>) satisfy the applicative
functor laws.
The instances of 
Monad for lists, 
Maybe and 
IO
defined in the 
Prelude satisfy these laws.
Reexporting useful monadic stuff.
The 
Monad class defines the basic operations over a
monad, a concept from a branch of mathematics known as
category theory. From the perspective of a Haskell programmer,
however, it is best to think of a monad as an 
abstract datatype
of actions. Haskell's 
do expressions provide a convenient
syntax for writing monadic expressions.
Instances of 
Monad should satisfy the following:
Furthermore, the 
Monad and 
Applicative operations should
relate as follows:
The above laws imply:
and that 
pure and (
<*>) satisfy the applicative
functor laws.
The instances of 
Monad for lists, 
Maybe and 
IO
defined in the 
Prelude satisfy these laws.
Internal stuff that most people shouldn't have to use. This module
mostly deals with the internals of the CGIT monad transformer.
Monad properties
You will need TypeApplications to use these.
JSM monad keeps track of the JavaScript context
Monad class implementing an Open Sound Control transport.
The recommended tracing interface for application developers
See OpenTelemetry.Trace for an interface that's more lower-level, but
more flexible.
The 
Monad class defines the basic operations over a
monad, a concept from a branch of mathematics known as
category theory. From the perspective of a Haskell programmer,
however, it is best to think of a monad as an 
abstract datatype
of actions. Haskell's 
do expressions provide a convenient
syntax for writing monadic expressions.
Instances of 
Monad should satisfy the following laws:
Furthermore, the 
Monad and 
Applicative operations should
relate as follows:
The above laws imply:
and that 
pure and (
<*>) satisfy the applicative
functor laws.
The instances of 
Monad for lists, 
Maybe and 
IO
defined in the 
Prelude satisfy these laws.
The 
Eff monad.
This module is intended for internal use only, and may change without
warning in subsequent releases.
Reexporting useful monadic stuff.
Monad properties
You will need TypeApplications to use these.
Allow to run operation in ST and IO, without having to distinguinsh
between the two. Most operations exposes the bare nuts and bolts of
how IO and ST actually works, and relatively easy to shoot yourself in
the foot
this is highly similar to the Control.Monad.Primitive in the primitive
package