Add equality operations for Reps.
This speeds up microbenchmarks by 50%, and new-metrics.rkt by 30%. original commit: 5cf65e28fc23b371f6c70ddeef5ffbc9dcdec3eb
This commit is contained in:
parent
0acb67a97f
commit
f55296aa2d
|
@ -30,7 +30,12 @@
|
|||
;; free-vars: cached free type variables
|
||||
;; free-idxs: cached free dot sequence variables
|
||||
;; stx: originating syntax for error-reporting
|
||||
(define-struct Rep (seq free-vars free-idxs stx) #:transparent)
|
||||
(define-struct Rep (seq free-vars free-idxs stx) #:transparent
|
||||
#:methods gen:equal+hash
|
||||
[(define (equal-proc x y recur)
|
||||
(eq? (unsafe-Rep-seq x) (unsafe-Rep-seq y)))
|
||||
(define (hash-proc x recur) (unsafe-Rep-seq x))
|
||||
(define (hash2-proc x recur) (unsafe-Rep-seq x))])
|
||||
|
||||
;; evil tricks for hygienic yet unhygienic-looking reference
|
||||
;; in say def-type for type-ref-id
|
||||
|
|
Loading…
Reference in New Issue
Block a user