let list : 'a repr list -> 'a list repr = fun l -> let ann = List.mapi ~f:(fun i x -> sprintf "element_%d" i, AF.get_provenance x) l in List (List.map l ~f:AF.get_file) |> AF.with_provenance "list" ann