 (defun merlin-locate ()
   "Locate the identifier under point"
   (interactive)
-  (merlin-locate-pure (thing-at-point 'ocamlatom)))
+  (merlin-locate-pure (thing-at-point 'ocaml-atom)))
 
 ;; I don't like it beginning by "ac" but
 ;; it is the only way I found to get it working (otherwise the completion

    (goto-char (point-max))
    (insert s)))

(defun merlin-compute-prefix (ident)
  "Compute the prefix of IDENT.  The prefix of `Foo.bar' is `Foo.' and the prefix of `bar' is `'."
  (let* ((l (butlast (split-string ident "\\.")))
         (s (mapconcat 'identity l ".")))
    (if (string-equal s "") s (concat s "."))))

(defun merlin-goto-point (data)
  "Go to the point indicated by DATA which must be an assoc list with fields line and col."
  "Go to the point indicated by `DATA' which must be an assoc list with fields line and col"
  (goto-char (point-min))
  (forward-line (1- (cdr (assoc 'line data))))
  (forward-char (cdr (assoc 'col data))))

(defun merlin-goto-file-and-point (data &optional same-buffer-force)
  "Go to the file and position indicated by DATA which is an assoc list containing fields file, line and col.

If it is called with a prefix argument, then show the type of the region."
  (interactive "p")
  (if (> arg 1) (merlin-type-region)
    (merlin-type-bounds (bounds-of-thing-at-point 'ocaml-path))))

(defun merlin-type-expr (s)
  "Show the type of the expression S."
