let apply : ('-> 'b) repr -> 'a repr -> 'b repr = fun f_repr x ->     let annot_f = AF.get_functional_provenance f_repr in     let annot_x = AF.get_provenance x in     match AF.get_file f_repr with     | Lambda f ->       f (AF.get_file x) |> AF.with_provenance "apply" [         "function", annot_f x;         "argument", annot_x;       ]     | _ -> assert false