     (merlin-sync-to-point)
     (if (> arg 1)
         (merlin-type-region)
-      (progn (merlin-type-enclosing)
-             (if (not merlin-enclosing-types)
-                 (merlin-type-point arg)
-               (merlin-type-enclosing-go-up))))))
+      (if (merlin-type-enclosing-query)
+          (merlin-type-enclosing-go-up)
+        (merlin-type-point arg)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; PACKAGE, PROJECT AND FLAGS MANAGEMENT ;;

    (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.


(merlin-insinuate)

(provide 'merlin)
;;; merlin.el ends here
