val create : unit -> ('k1, 'k2, 'd) tval get_key1 : ('k1, 'k2, 'd) t -> 'k1 optionval get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 optionval set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unitval unset_key1 : ('k1, 'k2, 'd) t -> unitval check_key1 : ('k1, 'k2, 'd) t -> boolval get_key2 : ('k1, 'k2, 'd) t -> 'k2 optionval get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 optionval set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unitval unset_key2 : ('k1, 'k2, 'd) t -> unitval check_key2 : ('k1, 'k2, 'd) t -> boolval blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unitval blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unitval blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unitval get_data : ('k1, 'k2, 'd) t -> 'd optionval get_data_copy : ('k1, 'k2, 'd) t -> 'd optionval set_data : ('k1, 'k2, 'd) t -> 'd -> unitval unset_data : ('k1, 'k2, 'd) t -> unitval check_data : ('k1, 'k2, 'd) t -> boolval blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unitval make : 'k1 -> 'k2 -> 'd -> ('k1, 'k2, 'd) tval query : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> 'd option