slimeでanythingを使って補完をする
slime-simple-complete-symbol内の

(slime-display-or-scroll-completions completions
                                                        partial)

というのを

(let ((anything-input-filter
       (lambda (input) (concat slime-simple-complete-symbol-partial ".*" input)))
      (anything-select-string-actions
       '(action . (("Insert" .
		    (lambda (c) (backward-delete-char (length partial)) (insert c)))
		   ("Describe symbol" .
		    (lambda (c) (slime-describe-symbol c)))))))
  (setq slime-simple-complete-symbol-partial partial)
  (anything-select-string completions))

とするだけ。あとanything-input-fiter(仮)を使ってもpartial-completionもどきが実装できる事に気がついた。
こういう候補を作っておいて最後で候補を読み込むだけってのは、anything-select-string(仮)でanythingにインタフェースを差し替えるのも楽でいい。
completing-readを使うようなタイプでも機械的にインタフェースの差し替えができるような手法ってないのかな?