I replaced the exceptions from the functional F# code with mutable flags and while loops - and its speed improved from being 6 times slower than OCaml, to being 5 times slower.
I also replaced the sort with a fold... and there was no speed improvement (the lists are so small it made no difference).
I also replaced the sort with a fold... and there was no speed improvement (the lists are so small it made no difference).
Oh well, what can you do? :-)