let rec assigned_of_data te acc d =
    match d with
      | (Data _|Value _|Loc _) ->
          F.Aloc(te,loc_of_data te d)::acc
      | Range(te,loc,range) ->
          F.Arange(te,loc,range)::acc
      | List ds -> List.fold_left (assigned_of_data te) acc ds
      | _ -> Wp_parameters.not_yet_implemented "arbitrary zone"