A reference to a value that may be updated atomically.
Monad with effect-capturing unit.
Monad with effect-capturing unit.
Cribbed from [doobie](http://github.com/tpolecat/doobie)
Provides the ability to indicate a computation has failed.
Provides the ability to indicate a computation has failed.
the reason/error describing why the computation failed
Provides the ability to read, write and delete from a store of values indexed by keys.
Provides the ability to read, write and delete from a store of values indexed by keys.
the type of keys used to index values
the type of values in the store
Provides the ability to read, write and delete from a store of values indexed by keys.
Provides the ability to read, write and delete from a store of values indexed by keys.
the type of keys used to index values
the type of values in the store
Encapsulates boilerplate useful in defining lifted operations on free monads over effect algebras.
Represents the ability to request the next element of a monotonically increasing numeric sequence.
Represents the ability to request the next element of a monotonically increasing numeric sequence.
That is,
for { a <- next b <- next } yield a < b
must always be true.
Provides the ability to request the next element of a monotonically increasing numeric sequence.
Provides the ability to request the next element of a monotonically increasing numeric sequence.
That is,
for { a <- next b <- next } yield a < b
must always be true.
Provides the ability to obtain a value of type R
from the environment.
Provides the ability to obtain a value of type R
from the environment.
the type of value to be read.
A reference to a value that may be updated atomically.
the type of value referenced