Ambient_contextmodule TLS = Ambient_context_thread_local.Thread_localmodule Hmap = Ambient_context_core.Ambient_context_hmapmodule Atomic = Ambient_context_atomic.Atomicinclude module type of struct include Ambient_context_core.Types endmodule Hmap := Ambient_context_core.Ambient_context_hmapmodule type STORAGE = Ambient_context_core.Types.STORAGEtype storage = (module STORAGE)type 'a key = int * 'a Hmap.keyval id : int Atomic.tval default_storage : Ambient_context_core.Types.storageval get_current_storage : unit -> Ambient_context_core.Types.storageval create_key : unit -> int * 'a Ambient_context_core.Ambient_context_hmap.keyval get : (int * 'a Ambient_context_core.Ambient_context_hmap.key) -> 'a optionval with_binding : 'a key -> 'a -> (unit -> 'r) -> 'rval without_binding :
(int * 'a Ambient_context_core.Ambient_context_hmap.key) ->
(unit -> 'b) ->
'cval set_storage_provider : Ambient_context_core.Types.storage -> unit