! Copyright (C) 2013 John Benediktsson
! See http://factorcode.org/license.txt for BSD license
-USING: accessors combinators hash-sets hash-sets.wrapped kernel
-parser sequences sets vocabs.loader ;
+USING: accessors hash-sets hash-sets.wrapped kernel math parser
+sequences vocabs.loader ;
IN: hash-sets.sequences
-ERROR: not-a-sequence object ;
+<PRIVATE
-TUPLE: sequence-wrapper < wrapped-key ;
+TUPLE: sequence-wrapper
+ { underlying sequence read-only } ;
C: <sequence-wrapper> sequence-wrapper
M: sequence-wrapper hashcode*
underlying>> [ sequence-hashcode ] recursive-hashcode ; inline
+PRIVATE>
+
TUPLE: sequence-hash-set < wrapped-hash-set ;
: <sequence-hash-set> ( n -- shash-set )
<hash-set> sequence-hash-set boa ; inline
-M: sequence-hash-set wrap-key
- drop dup sequence? [ <sequence-wrapper> ] [ not-a-sequence ] if ;
+M: sequence-hash-set wrap-key drop <sequence-wrapper> ;
M: sequence-hash-set clone
underlying>> clone sequence-hash-set boa ; inline