let print_if_states_listA (func : string) (l : Types.if_term list) : string * string list =
let tmp= ref "" in
let res = ref [] in
let rec print_if_states_list_recA = function
[] -> Error_handler.displayWarning 5 "print_if_states"
| [h] ->
(tmp := (if_term_to_string func h);
if((!tmp)<>"") then (res:= (!tmp)::(!res)))
| h::t ->
(tmp:= (if_term_to_string func h);
if((!tmp)<>"") then (res := (!tmp)::(!res))) ;
print_if_states_list_recA t
in
print_if_states_list_recA l;
match (List.rev (!res)) with [state] -> (state, [""])
|(state::iknows) -> (state, iknows)
|_ -> failwith "Bad state"