blob: aa691d0216a022b09ce40089868516108edd061d (
plain) (
tree)
|
|
class type implementation = object
method update : string -> Handle.t option -> Handle.t option -> (Handle.t, Concepts.Condition.condition) result
end
type Handle.protocol += Associative of implementation
type t = implementation
let make impl = Associative (impl :> implementation)
let from handle = Handle.into handle (function Associative impl -> Some impl | _ -> None)
let update i key reference value = Handle.invoke i (fun o ->
let open Utilities.Result in
let* h = o#update key reference value in
Handle.require from h)
|