-callback get(t(K, V), K) ->
hope_option:t(V).
+-callback get(t(K, V), K, V) ->
+ V.
+
+-callback get(t(K, V), K, V, fun((V) -> boolean())) ->
+ V.
+
-callback set(t(K, V), K, V) ->
t(K, V).
-callback fold(t(K, V), fun((K, V, Acc) -> Acc), Acc) ->
Acc.
--callback iter(t(K, V), fun((K, V) -> ok)) ->
+-callback iter(t(K, V), fun((K, V) -> any())) ->
ok.
%% TODO: Decide if validation is to be done. If yes - wrap in hope_result:t/1
-callback to_kv_list(t(K, V)) ->
[{K, V}].
+
+-callback has_key(t(K, _), K) ->
+ boolean().