let term_of_data = function
| Data t -> t
| Value v -> M.logic_of_value v
| Loc l -> F.wrap (M.pointer_of_loc l)
| Set s -> F.wrap s
| List dl -> F.wrap (D.unions (List.map (set_of) dl))
| Range _ -> Wp_parameters.not_yet_implemented "set of zone"
| Interval i -> F.wrap (D.interval i )