croma v0.4.0 Croma.Monad
This module defines an interface for monad.
Modules that use
this module must provide concrete implementations of the following:
@type t(a)
@spec pure(a: a) :: t(a) when a: any
@spec bind(t(a), (a -> t(b))) :: t(b) when a: any, b: any
Using concrete implementations of the above interfaces, this module generates default implementations of some functions/macros.
See Croma.Result
for the generated functions/macros.