Ok, that’s working too.
(let ((opam-share
(ignore-errors
(replace-regexp-in-string
"\r$" ""
(car (process-lines "sh" "-c" "opam var share | cygpath -f -"))))))
(when (and opam-share (file-directory-p opam-share))
;; Register Merlin
(add-to-list 'load-path
(expand-file-name "emacs/site-lisp" opam-share))
(load "tuareg")
(load "merlin")
(add-hook 'tuareg-mode-hook 'merlin-mode t)
(add-to-list 'auto-mode-alist '("\\.ml[iylp]?\\'" . tuareg-mode))
(add-to-list 'auto-mode-alist '("\\.eliomi?\\'" . tuareg-mode))
(add-to-list 'interpreter-mode-alist '("ocamlrun" . tuareg-mode))
(add-to-list 'interpreter-mode-alist '("ocaml" . tuareg-mode))
))