coq-core.clib
Make.M
btauto_plugin
cc_plugin
coq-core.config
coq-core.engine
coq-core.gramlib
coq-core.interp
coq-core.kernel
coq-core.lib
coq-core.library
coq-core.parsing
coq-core.plugins
coq-core.pretyping
coq-core.printing
coq-core.proofs
coq-core.stm
coq-core.sysinit
coq-core.tactics
coq-core.top_printers
coq-core.toplevel
coq-core.vernac
coq-core.vm
coqide-server.core
coqide-server.protocol
derive_plugin
extraction_plugin
firstorder_plugin
float_syntax_plugin
funind_plugin
ltac2_plugin
ltac_plugin
micromega_plugin
nsatz_plugin
number_string_notation_plugin
ring_plugin
rtauto_plugin
ssreflect_plugin
ssrmatching_plugin
ssrsearch_plugin
tauto_plugin
tuto0_plugin
tuto1_plugin
tuto2_plugin
tuto3_plugin
zify_plugin
type +'a t
val return : 'a -> 'a t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
val (>>) : unit t -> 'a t -> 'a t
val map : ('a -> 'b) -> 'a t -> 'b t
The monadic laws must hold:
(x>>=f)>>=g
x>>=fun x' -> (f x'>>=g)
return a >>= f
f a
x>>=return
x
As well as the following identities:
x >> y
x >>= fun () -> y
map f x
x >>= fun x' -> f x'