I think you are seeing that the blocks are tangled in reverse. If I add a third arbitrary lang it comes in reverse.
If they are all the same language, they are in the right order. It looks like org collects by language, so your strategy won't work with org-babel tangle I guess.
#+BEGIN_SRC foob :tangle foo.ml
let x = 1
#+END_SRC
#+BEGIN_SRC fooa :tangle foo.ml
let x = 2
#+END_SRC
John
----------------------------------- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803