let print_section_types (() : unit) : unit =
let role_ids = 0::(List.map snd !Globals.player_to_role) in
let identifiers_type_table = (Hashtbl.create 15 : (string,int) Hashtbl.t) in
let identifiers_type_table_key_list = ref ([]: string list) in
Hashtbl.iter
(fun x y ->
if (not_excluded_type y)
&& (List.mem (Globals.string_id#get_role_id x) role_ids) then
(let y_string = (atoms_type_to_string false y) in
Hashtbl.add identifiers_type_table y_string x;
identifiers_type_table_key_list :=
Utils.insert_with_no_copy y_string !identifiers_type_table_key_list))
Globals.type_table#get_tab;
List.iter
(fun a ->
let list_of_identifiers_of_type_a =
Utils.remove_duplicate
(List.map
(Globals.string_id#get_name; )
(Hashtbl.find_all identifiers_type_table a))
in
List.iter (fun t -> (add_type (replace "dummy_" "" t) [a])) list_of_identifiers_of_type_a;)
!identifiers_type_table_key_list