let add_declaration d =
    try
      if !locked then Wp_parameters.fatal
        "Locked datalib (when declaring %t)" d.d_title ;
      let old = Hashtbl.find gindex d.d_name in
      Wp_parameters.not_yet_implemented
        "Overloaded operator %t and %t"
         old.d_title d.d_title
    with Not_found ->
      begin
        Hashtbl.add gindex d.d_name d ;
        let s = s_index d.d_section in
        gsection.(s) <- Dset.add d gsection.(s) ;
      end