;;; -*- Mode: Lisp; Syntax: CL; Package: USER; Base: 10 -*-

;(setq *macroexpand-hook* 'funcall)
;      #'(lambda (expander call &optional env)
;	  (format t "~&Expanding~%~S~2%with ~S in ~S" call expander env)
;	  (if env (funcall expander call env)
;	    (funcall expander call env)))

(defmacro mumble (&body body)
  `(progn ,@body))

(defun foo ()
  (mumble
    (print 5)))



(gf:defgeneric zap (loser &optional (calories 5)))

(defflavor loser ()())
(defflavor bagbiter () (loser))
(defflavor winner ()())

(gf:defmethod zap (loser &optional calories)
  (format t "~&Zzzaaap! ~D" calories))

(gf:defmethod zap (winner &optional calories)
  ())

