


The standard library Typelocked_Double_Keyed_hashtable api defines access to hashtables which take a pair of keys and are specialized to hold a particular value type.
Implementations of the Typelocked_Double_Keyed_hashtable api may be generated using typelocked_double_keyed_hashtable_g from src/lib/src/typelocked-double-keyed-hashtable-g.pkg.
The Typelocked_Double_Keyed_hashtable api source code is in src/lib/src/typelocked-double-keyed-hashtable.api.
The above information is manually maintained and may contain errors.
api {
package key1 : api {
Hash_Key ;
hash_value : Hash_Key -> Unt;
same_key : (Hash_Key , Hash_Key) -> Bool;
};;
package key2 : api {
Hash_Key ;
hash_value : Hash_Key -> Unt;
same_key : (Hash_Key , Hash_Key) -> Bool;
};;
Hashtable X;
make_hashtable : (Int , Exception) -> Hashtable(X );
clear : Hashtable(X ) -> Void;
set : Hashtable(X )
-> (key1::Hash_Key , key2::Hash_Key , X) -> Void;
in_domain1 : Hashtable(X ) -> key1::Hash_Key -> Bool;
in_domain2 : Hashtable(X ) -> key2::Hash_Key -> Bool;
get1 : Hashtable(X ) -> key1::Hash_Key -> X;
get2 : Hashtable(X ) -> key2::Hash_Key -> X;
find1 : Hashtable(X ) -> key1::Hash_Key -> Null_Or(X );
find2 : Hashtable(X ) -> key2::Hash_Key -> Null_Or(X );
remove1 : Hashtable(X ) -> key1::Hash_Key -> X;
remove2 : Hashtable(X ) -> key2::Hash_Key -> X;
vals_count : Hashtable(X ) -> Int;
vals_list : Hashtable(X ) -> List(X );
keyvals_list : Hashtable(X )
-> List(((key1::Hash_Key , key2::Hash_Key , X)) );
apply : (X -> Void) -> Hashtable(X ) -> Void;
keyed_apply : ((key1::Hash_Key , key2::Hash_Key , X) -> Void)
-> Hashtable(X ) -> Void;
map : (X -> Y) -> Hashtable(X ) -> Hashtable(Y );
keyed_map : ((key1::Hash_Key , key2::Hash_Key , X) -> Y)
-> Hashtable(X ) -> Hashtable(Y );
fold : ((X , Y) -> Y) -> Y -> Hashtable(X ) -> Y;
foldi : ((key1::Hash_Key , key2::Hash_Key , X , Y) -> Y)
-> Y -> Hashtable(X ) -> Y;
filter : (X -> Bool) -> Hashtable(X ) -> Void;
keyed_filter : ((key1::Hash_Key , key2::Hash_Key , X) -> Bool)
-> Hashtable(X ) -> Void;
copy : Hashtable(X ) -> Hashtable(X );
bucket_sizes : Hashtable(X ) -> (List(Int ) , List(Int ));
};


