tuareg-current-fun-name is buggy:
gives me f.f.f
gives me f.f.g
There are various other bugs.
Since add-log-current-defun-function is set to tuareg-current-fun-name, which-function-mode displays ugly, wrong results.
As a result, I'm using the following configuration to disable the use of tuareg-current-fun-name:
(setq-local add-log-current-defun-function nil)
(setq-local add-log-current-defun-header-regexp (rx unmatchable))
which causes which-function-mode to fall back to using imenu, which for me is populated by merlin, and is much more accurate and nice.