I'm profiling some code where it seems that caml_apply2 is right near the top of the gprof list % cumulative self time seconds seconds calls name 15.95 0.52 0.52 92467664 camlMutable_rack__has_letter_1031 12.27 0.92 0.40 109589844 caml_apply2 10.74 1.27 0.35 92467664 camlMutable_rack__remove_1035 8.28 1.54 0.27 2478379 camlArray__iteri_1064 7.82 1.80 0.26 32188972 camlMutable_rack__play_1040 3.99 1.93 0.13 64437854 camlTrie__fun_76276 and seems (from the call graphs later down) to be contributing towards the time taken by camlArray_iteri as well, unless I've misunderstood that bit. Is this an actual problem, or just a sign that I've optimised all the obvious bottlenecks already? martin