type 'a t = 'a Logic_monad.Logical(P).t
val return : 'a -> 'a tval (>>=) : 'a t -> ('a -> 'b t) -> 'b tval (>>) : unit t -> 'a t -> 'a tval map : ('a -> 'b) -> 'a t -> 'b t
module List : sig ... endval ignore : 'a t -> unit tval set : P.s -> unit tval get : P.s tval modify : (P.s -> P.s) -> unit tval put : P.w -> unit tval current : P.e tval local : P.e -> 'a t -> 'a tval update : (P.u -> P.u) -> unit tval zero : Exninfo.iexn -> 'a tval plus : 'a t -> (Exninfo.iexn -> 'a t) -> 'a tval split : 'a t -> ('a, 'a t, Exninfo.iexn) Logic_monad.list_view tval once : 'a t -> 'a tval break : (Exninfo.iexn -> Exninfo.iexn option) -> 'a t -> 'a tval lift : 'a Logic_monad.NonLogical.t -> 'a t
type 'a reified = ('a, Exninfo.iexn) Logic_monad.BackState.reified
val repr : 'a reified -> ('a, 'a reified, Exninfo.iexn) Logic_monad.list_view Logic_monad.NonLogical.tval run : 'a t -> P.e -> P.s -> ('a * P.s * P.w * P.u) reified