method add_new_spec_type = fun db ty ->
let row = ref None in
tyopts_store#foreach
(fun path iter ->
let (db', _) = tyopts_store#get_data ~row:iter in
if db = db' then begin
row := Some (tyopts_store#get_row_reference path);
true
end else
false);
match !row with
| Some r ->
tyopts_store#set_data (db, ty) ~row:r#iter
| None ->
tyopts_store#prepend_data (db, ty)