capture body pasted by evhan on Sun Sep 14 06:55:40 2014

(define-syntax cmd
  (syntax-rules ()
    ((_ tag . body)
     (irc:add-message-handler!
      con
      (lambda (msg)
        (let* ((from (irc:message-sender msg))
               (receiver (irc:message-receiver msg))
               (reply (if (string=? receiver (irc:connection-nick con)) from receiver))
               (all (last (irc:message-parameters msg)))
               (rest (string-substitute (tag->regex tag) "" all)))
          . body))
      command: "PRIVMSG" body: (check-body (tag->regex tag)) tag: tag))))

hygienic from et al. added by evhan on Sun Sep 14 07:09:44 2014

(define-syntax cmd
  (syntax-rules ()
    ((_ tag from receiver reply all rest . body)
     (irc:add-message-handler!
      con
      (lambda (msg)
        (let* ((from (irc:message-sender msg))
               (receiver (irc:message-receiver msg))
               (reply (if (string=? receiver (irc:connection-nick con)) from receiver))
               (all (last (irc:message-parameters msg)))
               (rest (string-substitute (tag->regex tag) "" all)))
          . body))
      command: "PRIVMSG" body: (check-body (tag->regex tag)) tag: tag))))

(cmd this-is-the-tag-variable-name
     this-is-the-from-variable-name
     this-is-the-receiver
     the-reply
     all
     rest
  (do-some-stuff-with the-reply all rest))