From f5d331b0d8c11702bf30d5da119d3ac29741022e Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 23 Oct 2015 19:17:17 -0400 Subject: [PATCH] Canonicalize atoms during pattern- and projection-compilation and value-matching --- prospect/route.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prospect/route.rkt b/prospect/route.rkt index 19bb767..b1ec778 100644 --- a/prospect/route.rkt +++ b/prospect/route.rkt @@ -301,7 +301,7 @@ (rseq (struct->struct-type p) (walk-pair-chain (cdr (vector->list (struct->vector p))) acc))] - [other (rseq other acc)])) + [other (rseq (canonicalize other) acc)])) (walk-pair-chain ps0 (rsuccess v))) @@ -527,7 +527,7 @@ [#f (walk rest stack (get ?))] [k (walk (cdr (vector->list (struct->vector s))) (cons rest stack) k)])] [(cons v rest) - (walk rest stack (rlookup r v (get ?)))])]))) + (walk rest stack (rlookup r (canonicalize v) (get ?)))])]))) ;; Matcher Matcher -> Value ;; @@ -638,7 +638,7 @@ (cons (struct->struct-type p) (walk-pair-chain (cdr (vector->list (struct->vector p))) acc))] - [other (cons other acc)])) + [other (cons (canonicalize other) acc)])) (walk-pair-chain ps0 '()))