package octez-l2-libs
Monad for values with delayed write effects
Type to encapsulate values with a callback that should write to disk. This allows to delay some writes to a location where we have write access to the context.
val no_write : 'a -> ('a, _) t
no_write v
returns v
together with a write function that does nothing.
val delay_write :
'a ->
('store -> unit Tezos_base.TzPervasives.tzresult Lwt.t) ->
('a, 'store) t
delay_write v write
returns a delayed write version of v
with the write
function to be called later.
map f dw
returns the delayed write dw
where f
is applied to the encapsulated value.
map_es
is like map
in the Lwt result monad.
bind f dw
returns a delayed write value where f
is applied to the encapsulated value and the write effects of f
are added to the effects of dw
.
val apply :
'store ->
('a, 'store) t ->
'a Tezos_base.TzPervasives.tzresult Lwt.t
apply node_ctxt dw
applies the write effects on the context node_ctxt
and returns the encapsulated value.
val ignore : ('a, _) t -> 'a
ignore dw
ignores the write effects and returns the encapsulated value.
module Lwt_result_syntax : sig ... end