29 (** val option : Monad.monadProps **)
31 Monad.makeMonadProps (fun _ x -> Types.Some x) (fun _ _ m f ->
33 | Types.None -> Types.None
34 | Types.Some x -> f x)
36 (** val opt_safe : 'a1 Types.option -> 'a1 **)
39 | Types.None -> (fun _ -> Logic.false_rect_Type0 __)
40 | Types.Some t -> (fun _ -> t)) __
42 (** val opt_try_catch : 'a1 Types.option -> (Types.unit0 -> 'a1) -> 'a1 **)
43 let opt_try_catch m f =
45 | Types.None -> f Types.It
48 (** val optPred : Monad.injMonadPred **)
50 { Monad.im_pred = Monad.Mk_MonadPred; Monad.mp_inject = (fun _ _ m_sig ->
52 (match Obj.magic m with
53 | Types.None -> (fun _ -> Obj.magic Types.None)
54 | Types.Some x -> (fun _ -> Obj.magic (Types.Some x))) __) }