let call_instantiation specif =
let main_role = specif#get_main_role in
(try
(role_def_list :=
List.map
(function
Basic(y) as x -> (y#get_name,x)
| Composition(y) as x -> (y#get_name,x))
specif#get_roles;
goals := specif#get_goals;
instances_schema := unfold_instances main_role;
if !debug_level >= 2 then
(prerr_endline ("%% Schema of instances: "
^(string_of_instances !instances_schema)));
if !debug_level >= 5 then
Utils_debug.dump());
with x ->
(handleSemanticError
(20,"Instantiation.call_instantiation: An error occurred during the computation in the Instantiation module",
"","","","");
Utils_debug.dump();
raise x));
List.map snd !basic_role_instances;