123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127moduleBool=Core.BoolmoduleChar=Core.CharmoduleInt=Core.IntmoduleInteger=Core.IntegermoduleFloat=Core.FloatmoduleString=Core.StringmoduleOption=structincludeCore.Option(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Option.map}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(let+)(t:'at)(f:'a->'b):'bt=mapt~f(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Option.both}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(and+)(t:'at)(t':'bt):('a*'b)t=bothtt'(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Option.flatMap}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(let*)(t:'at)(f:'a->'bt):'bt=flatMapt~f(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Option.both}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(and*)(t:'at)(t':'bt):('a*'b)t=bothtt'end(* This requires 4.08 *)moduleResult=structincludeCore.Result(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Result.map}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(let+)(t:('a,'error)t)(f:'a->'b):('b,'error)t=mapt~f(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Result.both}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(and+)(t:('a,'error)t)(t':('b,'error)t):(('a*'b),'error)t=bothtt'(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Result.flatMap}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(let*)(t:('a,'error)t)(f:'a->('b,'error)t):('b,'error)t=flatMapt~f(** The {{: https://caml.inria.fr/pub/docs/manual-ocaml/bindingops.html } binding operator}
for {!Core.Result.both}
{b Note} Currently this is only supported by the OCaml syntax.
{b Note} This requires at least OCaml 4.08 which means currently this is
only supported by the native compiler.
*)let(and*)(t:('a,'error)t)(t':('b,'error)t):(('a*'b),'error)t=bothtt'endmoduleTuple=Core.TuplemoduleTuple3=Core.Tuple3moduleArray=Core.ArraymoduleList=Core.ListmoduleSet=Core.SetmoduleMap=Core.MapmoduleContainer=Core.ContainermoduleComparator=Core.ComparatormoduleFun=Core.Fun