;; @ignore
;; Creates a procedure which can be used to match against the given pattern.
(define (p:matcher pattern)
(let* ((compiled (p:compile pattern))
(proc (matcher:proc compiled)))
(lambda (datum)
(proc datum (match-result:make) identity))))