diff --git a/free-identifier-tree-equal.rkt b/free-identifier-tree-equal.rkt index 7576983..d48412d 100644 --- a/free-identifier-tree-equal.rkt +++ b/free-identifier-tree-equal.rkt @@ -62,12 +62,14 @@ (rec=? (struct->list a) (struct->list b)))))] [(struct? a) - (rec=? (vector->immutable-vector (struct->vector a)))] + (and (struct? b) + (rec=? (vector->immutable-vector (struct->vector a)) + (vector->immutable-vector (struct->vector b))))] [(null? a) (null? b)] [else (equal? a b)])) (define/contract ((free-id-tree-hash default-hc) a [hc default-hc]) - (-> (-> any/c fixnum?) (-> isyntax/c (-> isyntax/c fixnum?) fixnum?)) + (-> (-> any/c fixnum?) (->* {isyntax/c} {(-> isyntax/c fixnum?)} fixnum?)) (define rec-hash (free-id-tree-hash hc)) (cond [(identifier? a) (hc (syntax-e #'a))] diff --git a/traversal.hl.rkt b/traversal.hl.rkt index 01eff8e..36f4f12 100644 --- a/traversal.hl.rkt +++ b/traversal.hl.rkt @@ -17,7 +17,7 @@ values) (only-in racket/base values) (subtract-in racket/contract typed/racket/base) - phc-toolkit + (except-in phc-toolkit generate-temporary) phc-toolkit/untyped-only remember)) @(unless-preexpanding