(defpackage #:obwyn (:use #:cl) (:local-nicknames (#:a #:alexandria-2)) (:export #:<- #:<~ #:>> #:> (:literals= #'literals-equal) ( :match (:seq (:* ) (:eof)) :then (expand-clauses (first ))) ( :match (:or )) ( :match (:seq (:= :<-) (:item)) :then (destructuring-bind (bindings _ form) (declare (ignore _)) (list :mvbind bindings form))) ( :match (:seq (:@ var (:item)) (:= : :match (:item) :if values-binding-p :note "Either a symbol or a list suitable for passing to MULTIPLE-VALUE-BIND") ( :match (:seq (:= :<~) (:item)) :then (destructuring-bind (bindings _ form) (declare (ignore _)) (list :dsbind bindings form))) ( :match (:item) :if destructuring-bind-list-p :note "An list that might be passed as the first argument to DESTRUCTURING-BIND.") ( :match (:seq (:= :?) (:item)) :then (list :unless nil (second ))) ( :match (:@ simple (:item)) :if (not (member simple '(:<~ :<- :? :