haskell/haskell-mode — pull request #4 by chrisdone (2012-03-15 23:42:47+00:00)
Title: Fix for “Warning: Function `values' from cl package called at runtime” in Emacs 23.1.3

Re #3.

In the current haskell-mode.el there is:

(eval-when-compile
;; Emacs 21 defines `values' as a (run-time) alias for list.
;; Don't maerge this with the pervious clause.
(if (string-match "values"
(pp (byte-compile (lambda () (values t)))))
(defsubst values (&rest values)
values)))

Which brings up an annoying buffer in Emacs 23.3.1 stating “Warning:
Function `values' from cl package called at runtime”, the reason being
that functions from the CL package are deprecated in some way at RMS's
hand.

At any rate, the use of VALUES is only for MULTIPLE-VALUE-BIND in one
function, in one use in the whole file and project. In actuality,
MULTIPLE-VALUE-BIND accepts a list as its input form, therefore we can
use LIST rather than VALUES with it, and VALUES is redundant and we
avoid this whole warning and mess.

I've tested this only on Emacs 23.3.1, but I'm fairly confident that
the behaviour of MULTIPLE-VALUE-BIND with lists is quite old and
reliable.

If there are any problems with it bugs should be reported and we can
address, but otherwise this seems like a fine change.