I am currently reading Purely Functional Data Structures, doing all the exercises et cetera. I have been programming ocaml for about a year, so it has been pretty straight forward for me --a few little things here and there with differences between ML and OCAML module and functor signatures that I had to get used to, but it was pretty natural.
I would say learn some introductory ML/OCaml/F# stuff on pattern matching and type signatures, and a bit on modules and functors. Make sure you aren't afraid of recursion as well. Everything I've been exposed to has been done with matching and recursion, and interpreting the type signatures. Building the modules he describes is really an optional task.
I was being silly and neglected some necessary information for defining a functor, and posted some of the code for chapter II on stack overflow. What will also help is looking at the implementations of the data structures already written in ocaml within the standard library.
Also, make sure you are using his book and not his dissertation, as he had to neglect many data structures and introductions in his dissertation since they were not his original work. Also, the source code that is accompanied by the book on Chris' web page (in Haskell and ML), also Ocaml.
Slashdot has a book review with more information if anyone is interested.
Also, post questions here! Good luck!