While I haven't used F# much, as a professional OCaml and Scala dev, Scala is hands down the more powerful language. OCaml isn't bad, but it leaves a lot to be desired.
A little offtopic, but if OCaml got rid of its module system, added type classes, polymorphic functions, higher-kinded types, multi-core support and removed objects (not that it matters that much), it would be my dream language.
Basically, I want Haskell without the dogma. Though, I guess that's what unsafePerformIO provides!