rocq-runtime.clib
Make.M
btauto_plugin
byte_config
cc_core_plugin
cc_plugin
derive_plugin
extraction_plugin
firstorder_core_plugin
firstorder_plugin
funind_plugin
ltac2_ltac1_plugin
ltac2_plugin
ltac_plugin
micromega_core_plugin
micromega_plugin
nsatz_core_plugin
nsatz_plugin
number_string_notation_plugin
ring_plugin
rocq-runtime.boot
rocq-runtime.checklib
rocq-runtime.config
rocq-runtime.coqargs
rocq-runtime.coqdeplib
rocq-runtime.coqworkmgrapi
rocq-runtime.debugger_support
rocq-runtime.dev
rocq-runtime.engine
rocq-runtime.gramlib
rocq-runtime.interp
rocq-runtime.kernel
rocq-runtime.lib
rocq-runtime.library
rocq-runtime.parsing
rocq-runtime.perf
rocq-runtime.plugins
rocq-runtime.pretyping
rocq-runtime.printing
rocq-runtime.proofs
rocq-runtime.rocqshim
rocq-runtime.stm
rocq-runtime.sysinit
rocq-runtime.tactics
rocq-runtime.toplevel
rocq-runtime.vernac
rocq-runtime.vm
rtauto_plugin
ssreflect_plugin
ssrmatching_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'