diff --git a/core/classes/tuple/tuple.factor b/core/classes/tuple/tuple.factor index 1aa283a675..608fb8cf6c 100755 --- a/core/classes/tuple/tuple.factor +++ b/core/classes/tuple/tuple.factor @@ -225,9 +225,10 @@ M: tuple equal? M: tuple hashcode* [ - dup tuple-size -rot 0 -rot [ - swapd array-nth hashcode* bitxor - ] 2curry reduce + [ class hashcode ] [ tuple-size ] [ ] tri + >r rot r> [ + swapd array-nth hashcode* sequence-hashcode-step + ] 2curry each ] recursive-hashcode ; ! Deprecated diff --git a/core/kernel/kernel.factor b/core/kernel/kernel.factor index 2b1dd3cf9c..b54d0a7879 100755 --- a/core/kernel/kernel.factor +++ b/core/kernel/kernel.factor @@ -118,6 +118,8 @@ GENERIC: hashcode* ( depth obj -- code ) M: object hashcode* 2drop 0 ; +M: f hashcode* 2drop 31337 ; + : hashcode ( obj -- code ) 3 swap hashcode* ; inline GENERIC: equal? ( obj1 obj2 -- ? )