A Moption is a mutable option, like 'a option ref, but with a more efficient
implementation; in particular, set_some does not allocate.
include sig ... endval sexp_of_t : ('a ‑> Base.Sexp.t) ‑> 'a t ‑> Base.Sexp.tinclude Core_kernel__.Import.Invariant.S1 with type a t := a tval invariant : 'a Base__.Invariant_intf.inv ‑> 'a t Base__.Invariant_intf.invmodule Optional_syntax : Core_kernel.Optional_syntax.S1 with type a t := a t with type a value := a Core_kernel__.Import.identityval create : Core_kernel__.Import.unit ‑> _ tval is_none : _ t ‑> Core_kernel__.Import.boolval is_some : _ t ‑> Core_kernel__.Import.boolval get : 'a t ‑> 'a Core_kernel__.Import.optionval get_some_exn : 'a t ‑> 'aval set : 'a t ‑> 'a Core_kernel__.Import.option ‑> Core_kernel__.Import.unitval set_none : _ t ‑> Core_kernel__.Import.unitval set_some : 'a t ‑> 'a ‑> Core_kernel__.Import.unit