 (defun merlin-extension-disable (name)
   "Disable merlin support for language extension NAME."
   (interactive (list (completing-read "Extension: "
-                                      (progn
-                                        (merlin--acquire-buffer)
-                                        (merlin/send-command '(extension list enabled))))))
-  (merlin--acquire-buffer)
+                                        (merlin/send-command '(extension list enabled)))))
   (let* ((r (merlin/send-command `(extension disable (,name))))
          (failed (assoc 'failures r)))
     (when failed (message "%s" (cdr failed))))

      (ignore-errors (kill-process merlin-process)))
    (unless merlin-debug (kill-buffer buffer))))

(defun merlin--reset ()
  "Rewind the knowledge of merlin of the current buffer to zero."
  (let* ((name (or buffer-file-name "toplevel"))
         (dot-merlin (lookup-default 'dot-merlin merlin--grouping nil))

Give the result to callback-if-success.  If merlin reported an
error and if CALLBACK-IF-EXN is non-nil, call the function with
the error message otherwise print a generic error message."
  (unless (listp command) (setq command (list command)))
  (setq command (merlin--sexp-remove-string-properties command))
  (setq command (list (cons 'assoc nil)
                      (cons 'context (merlin--context))
                      (cons 'query command)))
  (let* ((string (concat (prin1-to-string command) "\n"))
         (promise (cons nil nil))
         (closure (list promise
