module Dash: State_builder.Dashtbl
(
Dashtbl.Default_key_marshaler
(
Key
)
)
(
Dashtbl.Default_data_marshaler
(
Datatype.Unit
)
)
(
sig
end
)
include State_builder.S
A dashtable is a standard computation.
BUT:
- that is INCORRECT to add the
self
value of a dashtbl into a
selection without also adding all the selection
.
- that is INCORRECT to use dashtable if keys or values have a custom
rehash
function (see Project.DATATYPE_OUTPUT.rehash
)
type
key
type
data
val add : string ->
key ->
State.t list -> data -> unit
val replace : reset:bool ->
string ->
key ->
State.t list -> data -> unit
val memo : reset:bool ->
(data list -> data) ->
string ->
key -> State.t list -> data
val clear : reset:bool -> unit -> unit
val remove : reset:bool -> key -> State.t -> unit
val remove_all : reset:bool -> key -> unit
val filter : reset:bool ->
(key ->
State.t option -> data -> bool) ->
key -> unit
val mem : key -> bool
val is_local : State.t -> bool
val find : ?who:State.t list ->
key -> State.t -> data * State.t
val find_key : State.t -> (key * State.t) list
val find_data : ?who:State.t list ->
key -> State.t -> data
val find_state : ?who:State.t list -> key -> State.t -> State.t
val find_all_local : ?who:State.t list ->
key ->
State.t -> (data * State.t) list
val find_all_local_data : ?who:State.t list ->
key -> State.t -> data list
val find_all_local_states : ?who:State.t list -> key -> State.t -> State.t list
val find_all : ?who:State.t list ->
key -> (data * State.t) list
val find_all_data : ?who:State.t list ->
key -> data list
val find_all_states : ?who:State.t list -> key -> State.t list
val iter : (key ->
State.t option -> data * State.t -> unit) ->
unit
val iter_key : (State.t option -> data * State.t -> unit) ->
key -> unit
val fold : (key ->
State.t option -> data * State.t -> 'a -> 'a) ->
'a -> 'a
val fold_key : (State.t option -> data * State.t -> 'a -> 'a) ->
key -> 'a -> 'a
val length : unit -> int
module Graph: Dashtbl.Graph