Considering that my main aim is to learn as many functional concepts as possible and must settle among these three languages, which language should I choose?
Some say choose OCaml over F# because of functors. Some say choose F# over OCaml for those unique features in F# that OCaml doesn't have.
If there is an optimized trade off for choosing a language, what would you recommend me to settle for?
It depends, if you want to have a language that is used and supported a lot you should chose OCaml or F#. SML is not used a lot anymore but there are still a few places using it. I personally think that F# feel more modern to write for example ocaml have differnt operators for integers compared to floats. But it is mostly an opinion. As I said there is not a big difference between the two languages. So you would with a very short notice be able to move from one language to another.
Considering my sole criteria to be learning functional paradigm as deeply as possible, as propounded earlier, which among F# and OCaml takes me to that extra mile in teaching Functional concepts?
If you only want to look at functional a more pure functional language like haskell may fit yyou better both ocaml and F# allows to do functions which are not truly pure it even have mutable variables which are not normally a thing. So if it to learn purely functional haskell or SML may be better.
Some say choose OCaml over F# because of functors. Some say choose F# over OCaml for those unique features in F# that OCaml doesn't have.
If there is an optimized trade off for choosing a language, what would you recommend me to settle for?