anchor.diff:               ,conseq))
            ,altern))))
   
  +(defmacro whenmatch ((test s) &rest conseq) `(ifmatch (,test ,s) (progn ,@conseq)))
  +
  +;(ifsplit $1 $2 ..?
  +
  +(defmacro match (stg &body clauses)
  +  `(cond
  +     ,@(loop for (regex . conseq) in clauses
  +             collect (if (eq regex t)
  +                       `(t ,@conseq)
  +                       `((whenmatch (,regex ,stg) ,@conseq))))))
  +
  +;; END ;;
  +#|
  +;; error: no dispatch function defined for #\`
  +
   ;(time (dotimes (x 100000) (pre:ifmatch (#~m'a' "a") 1 2))) ; 2.0 seconds of real time
   (lol:defmacro! ifmatch ((test o!s) conseq &optional altern)
     (let* ((dollars (remove-duplicates (remove-if-not #'lol:dollar-symbol-p (lol:flatten conseq))))
  
positive.code:            (declare (ignorable ,@(mapcar #'car #1#)))
             ,conseq)
           ,altern))))
  |#
  
  
  
negative.code: ;----------- o -------------------- o --------------------- o ------------------------
  (set-dispatch-macro-character #\# #\~ '|#~-reader|)
  
  ;orig
  ;(time (dotimes (x 100000) (pre:ifmatch (#~m'a' "a") 1 2))) ; 1.5 seconds of real time
  (lol:defmacro! ifmatch ((test o!s) conseq &optional altern)
  