I also have been going through a multi-year Haskell learning curve. One thing that helped make me more productive was writing the pure code first (use mock data) and after the pure code works well, then worry about writing the main program, dealing with impure code for file IO, web access, etc.<p>I have heard great things about OCaml but it seems to make more sense to master one strongly typed language first, and since you already are partially up to speed on Haskell, why not stick with it for now?