match based on symbol for : in ->

svn: r14758

original commit: fbae33b1c3d49eca4a8f7d08bcd88f13d10eb4b1
This commit is contained in:
Sam Tobin-Hochstadt 2009-05-08 23:31:33 +00:00
parent c43a6734ab
commit 9f7ae2f23f

View File

@ -188,11 +188,12 @@
(make-Function (list (make-arr* dom rng #:rest rst #:filters filters #:object object)))]))
(define-syntax (-> stx)
(define-syntax-class c
(pattern x:id #:when (eq? ': (syntax-e #'x))))
(syntax-parse stx
#:literals (:)
[(_ dom ... rng : filters)
[(_ dom ... rng :c filters)
#'(->* (list dom ...) rng : filters)]
[(_ dom ... rng : filters)
[(_ dom ... rng :c filters)
#'(->* (list dom ...) rng : filters)]
[(_ dom ... rng)
#'(->* (list dom ...) rng)]))