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"