17 open Hints_declaration
29 (** val state_monad : Monad.setoidMonadProps **)
31 Monad.makeSetoidMonadProps (fun _ x s -> { Types.fst = s; Types.snd = x })
32 (fun _ _ m f s -> let { Types.fst = s'; Types.snd = x } = m s in f x s')
34 (** val state_get : 'a1 Monad.smax_def__o__monad **)
36 Obj.magic (fun s -> { Types.fst = s; Types.snd = s })
38 (** val state_set : 'a1 -> Types.unit0 Monad.smax_def__o__monad **)
40 Obj.magic (fun x -> { Types.fst = s; Types.snd = Types.It })
42 (** val state_run : 'a1 -> 'a2 Monad.smax_def__o__monad -> 'a2 **)
44 (Obj.magic c s).Types.snd
46 (** val state_update :
47 ('a1 -> 'a1) -> Types.unit0 Monad.smax_def__o__monad **)
49 Obj.magic (fun s -> { Types.fst = (f s); Types.snd = Types.It })
51 (** val state_pred : Monad.monadPred **)
55 (** val stateRel : Monad.monadRel **)