]> gitweb.factorcode.org Git - factor.git/commitdiff
functors: FUNCTOR: ;FUNCTOR -> <FUNCTOR: ;FUNCTOR>
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 6 Aug 2017 01:41:19 +0000 (20:41 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 6 Aug 2017 01:41:19 +0000 (20:41 -0500)
Functors contain nested definitions, much like <PRIVATE PRIVATE> blocks.
A new parser will be able to parse nested definitions unambigiously without
knowledge of the definition of <FUNCTOR: itself, which is not the case if
it looks like FUNCTOR: instead.

21 files changed:
basis/alien/complex/functor/functor.factor
basis/alien/destructors/destructors.factor
basis/compiler/cfg/dataflow-analysis/dataflow-analysis.factor
basis/compiler/cfg/renaming/functor/functor.factor
basis/functors/functors-tests.factor
basis/functors/functors.factor
basis/math/vectors/simd/cords/cords.factor
basis/math/vectors/simd/simd.factor
basis/sequences/cords/cords.factor
basis/sorting/functor/functor.factor
basis/specialized-arrays/specialized-arrays.factor
basis/specialized-vectors/specialized-vectors.factor
basis/tuple-arrays/tuple-arrays.factor
basis/vectors/functor/functor.factor
extra/annotations/annotations.factor
extra/arrays/shaped/shaped-tests.factor
extra/classes/struct/vectored/vectored.factor
extra/math/blas/matrices/matrices.factor
extra/math/blas/vectors/vectors.factor
extra/talks/tc-lisp-talk/tc-lisp-talk.factor
extra/tokyo/assoc-functor/assoc-functor.factor

index e8ed72564c01825d5e30a8e5c4ec9a211a10c4bb..33a651a19c1d55501d33a1827bd8edca40399472 100644 (file)
@@ -4,7 +4,7 @@ USING: accessors alien alien.c-types classes.struct functors
 kernel math math.functions quotations ;
 IN: alien.complex.functor
 
-FUNCTOR: define-complex-type ( N T -- )
+<FUNCTOR: define-complex-type ( N T -- )
 
 N-type IS ${N}
 
@@ -29,4 +29,4 @@ T-class lookup-c-type
 complex >>boxed-class
 drop
 
-;FUNCTOR
+;FUNCTOR>
index f5127c0c783f177a3aed98db3fe737271479d230..27d7440454a4814b12426f82d383d6cd737ffaf0 100644 (file)
@@ -6,7 +6,7 @@ IN: alien.destructors
 
 TUPLE: alien-destructor alien ;
 
-FUNCTOR: define-destructor ( F -- )
+<FUNCTOR: define-destructor ( F -- )
 
 F-destructor DEFINES-CLASS ${F}-destructor
 <F-destructor> DEFINES <${F}-destructor>
@@ -27,6 +27,6 @@ M: F-destructor dispose alien>> F N ndrop ;
 
 : |F ( alien -- alien ) dup <F-destructor> |dispose drop ; inline
 
-;FUNCTOR
+;FUNCTOR>
 
 SYNTAX: DESTRUCTOR: scan-word define-destructor ;
index e85315d1197bfed05b7a137aa3492f641db21562..174eb095409b6b6f5b5f666bfd68bbbdbf50c02e 100644 (file)
@@ -57,7 +57,7 @@ MIXIN: dataflow-analysis
 M: dataflow-analysis join-sets 2drop assoc-refine ;
 M: dataflow-analysis ignore-block? drop kill-block?>> ;
 
-FUNCTOR: define-analysis ( name -- )
+<FUNCTOR: define-analysis ( name -- )
 
 name DEFINES-CLASS ${name}
 name-ins DEFINES ${name}-ins
@@ -77,7 +77,7 @@ SYMBOL: name-outs
 
 : name-out ( bb -- set ) name-outs get at ;
 
-;FUNCTOR
+;FUNCTOR>
 
 ! ! ! Forward dataflow analysis
 
@@ -88,7 +88,7 @@ M: forward-analysis block-order  drop reverse-post-order ;
 M: forward-analysis successors   drop successors>> ;
 M: forward-analysis predecessors drop predecessors>> ;
 
-FUNCTOR: define-forward-analysis ( name -- )
+<FUNCTOR: define-forward-analysis ( name -- )
 
 name IS ${name}
 name-ins IS ${name}-ins
@@ -103,7 +103,7 @@ INSTANCE: name forward-analysis
     name run-dataflow-analysis
     [ name-ins set ] [ name-outs set ] bi* ;
 
-;FUNCTOR
+;FUNCTOR>
 
 ! ! ! Backward dataflow analysis
 
@@ -114,7 +114,7 @@ M: backward-analysis block-order  drop post-order ;
 M: backward-analysis successors   drop predecessors>> ;
 M: backward-analysis predecessors drop successors>> ;
 
-FUNCTOR: define-backward-analysis ( name -- )
+<FUNCTOR: define-backward-analysis ( name -- )
 
 name IS ${name}
 name-ins IS ${name}-ins
@@ -129,7 +129,7 @@ INSTANCE: name backward-analysis
     \ name run-dataflow-analysis
     [ name-outs set ] [ name-ins set ] bi* ;
 
-;FUNCTOR
+;FUNCTOR>
 
 PRIVATE>
 
index 2f2d348b725d3f9bb05f76efa7a044e2df4461e9..06b827699f0774974fd32bfd436b3431bb3c2340 100644 (file)
@@ -12,7 +12,7 @@ IN: compiler.cfg.renaming.functor
     '[ [ _ ] dip changer-word [ ] 2sequence ] map [ ] join
     [ drop ] append ;
 
-FUNCTOR: define-renaming ( NAME DEF-QUOT USE-QUOT TEMP-QUOT -- )
+<FUNCTOR: define-renaming ( NAME DEF-QUOT USE-QUOT TEMP-QUOT -- )
 
 rename-insn-defs DEFINES ${NAME}-insn-defs
 rename-insn-uses DEFINES ${NAME}-insn-uses
@@ -83,6 +83,6 @@ insn-classes get [ insn-temp-slots empty? ] reject [
     define
 ] each
 
-;FUNCTOR
+;FUNCTOR>
 
 SYNTAX: RENAMING: scan-token scan-object scan-object scan-object define-renaming ;
index 8fc1fda86e6121443784522e292bdc731ae731af..e52ff7d04e8cfc6f81d47ee103d874f67ef80bf9 100644 (file)
@@ -5,7 +5,7 @@ IN: functors.tests
 
 <<
 
-FUNCTOR: define-box ( T -- )
+<FUNCTOR: define-box ( T -- )
 
 B DEFINES-CLASS ${T}-box
 <B> DEFINES <${B}>
@@ -16,7 +16,7 @@ TUPLE: B { value T } ;
 
 C: <B> B ( T -- B )
 
-;FUNCTOR
+;FUNCTOR>
 
 \ float define-box
 
@@ -30,7 +30,7 @@ C: <B> B ( T -- B )
     [ execute ] [ execute ] bi ; inline
 <<
 
-FUNCTOR: wrapper-test ( W -- )
+<FUNCTOR: wrapper-test ( W -- )
 
 WW DEFINES ${W}${W}
 
@@ -38,7 +38,7 @@ WHERE
 
 : WW ( a -- b ) \ W twice ;
 
-;FUNCTOR
+;FUNCTOR>
 
 \ sq wrapper-test
 
@@ -48,7 +48,7 @@ WHERE
 
 <<
 
-FUNCTOR: wrapper-test-2 ( W -- )
+<FUNCTOR: wrapper-test-2 ( W -- )
 
 W DEFINES ${W}
 
@@ -56,7 +56,7 @@ WHERE
 
 : W ( a b -- c ) \ + execute ;
 
-;FUNCTOR
+;FUNCTOR>
 
 "blah" wrapper-test-2
 
@@ -66,7 +66,7 @@ WHERE
 
 <<
 
-FUNCTOR: symbol-test ( W -- )
+<FUNCTOR: symbol-test ( W -- )
 
 W DEFINES ${W}
 
@@ -74,7 +74,7 @@ WHERE
 
 SYMBOL: W
 
-;FUNCTOR
+;FUNCTOR>
 
 "blorgh" symbol-test
 
@@ -84,7 +84,7 @@ SYMBOL: W
 
 <<
 
-FUNCTOR: generic-test ( W -- )
+<FUNCTOR: generic-test ( W -- )
 
 W DEFINES ${W}
 
@@ -94,7 +94,7 @@ GENERIC: W ( a -- b )
 M: object W ;
 M: integer W 1 + ;
 
-;FUNCTOR
+;FUNCTOR>
 
 "snurv" generic-test
 
@@ -126,7 +126,7 @@ M: integer W 1 + ;
 
 test-redefinition
 
-FUNCTOR: redefine-test ( W -- )
+<FUNCTOR: redefine-test ( W -- )
 
 W-word DEFINES ${W}-word
 W-tuple DEFINES-CLASS ${W}-tuple
@@ -141,7 +141,7 @@ GENERIC: W-generic ( a -- b )
 M: W-tuple W-generic ;
 SYMBOL: W-symbol
 
-;FUNCTOR
+;FUNCTOR>
 
 [ [ ] ] [
     "IN: functors.tests
@@ -152,7 +152,7 @@ test-redefinition
 
 <<
 
-FUNCTOR: define-a-struct ( T NAME TYPE N -- )
+<FUNCTOR: define-a-struct ( T NAME TYPE N -- )
 
 T-class DEFINES-CLASS ${T}
 
@@ -165,7 +165,7 @@ STRUCT: T-class
     { z TYPE initial: 5 }
     { float { c:float 2 } } ;
 
-;FUNCTOR
+;FUNCTOR>
 
 "a-struct" "nemo" c:char 2 define-a-struct
 
@@ -213,7 +213,7 @@ STRUCT: T-class
 
 <<
 
-FUNCTOR: define-an-inline-word ( W -- )
+<FUNCTOR: define-an-inline-word ( W -- )
 
 W DEFINES ${W}
 W-W DEFINES ${W}-${W}
@@ -223,7 +223,7 @@ WHERE
 : W ( -- ) ; inline
 : W-W ( -- ) W W ;
 
-;FUNCTOR
+;FUNCTOR>
 
 "an-inline-word" define-an-inline-word
 
@@ -234,7 +234,7 @@ WHERE
 
 <<
 
-FUNCTOR: define-a-final-class ( T W -- )
+<FUNCTOR: define-a-final-class ( T W -- )
 
 T DEFINES-CLASS ${T}
 W DEFINES ${W}
@@ -245,7 +245,7 @@ TUPLE: T ; final
 
 : W ( -- ) ;
 
-;FUNCTOR
+;FUNCTOR>
 
 "a-final-tuple" "a-word" define-a-final-class
 
index eefa7a31da3f4a58c61ea4f7b08c686cc8157b58..909ae3827977f286c2421679366fffae37499bb5 100644 (file)
@@ -138,7 +138,7 @@ SYNTAX: DEFINES-PRIVATE [ begin-private create-word-in end-private ] (INTERPOLAT
 
 SYNTAX: DEFINES-CLASS [ create-class-in ] (INTERPOLATE) ;
 
-DEFER: ;FUNCTOR delimiter
+DEFER: ;FUNCTOR> delimiter
 
 <PRIVATE
 
@@ -160,13 +160,13 @@ DEFER: ;FUNCTOR delimiter
     functor-words [
         "WHERE" parse-bindings drop
         [ swap <def> suffix ] { } assoc>map concat
-        \ ;FUNCTOR parse-until [ ] append-as
+        \ ;FUNCTOR> parse-until [ ] append-as
         qualified-vocabs pop* ! unuse the bindings
     ] with-lambda-scope ;
 
-: (FUNCTOR:) ( -- word def effect )
+: (<FUNCTOR:) ( -- word def effect )
     scan-new-word [ parse-functor-body ] parse-locals-definition ;
 
 PRIVATE>
 
-SYNTAX: FUNCTOR: (FUNCTOR:) define-declared ;
+SYNTAX: <FUNCTOR: (<FUNCTOR:) define-declared ;
index b87c603e4a246f4d7ed6ae5c6cd5d346f612c0e9..3c360512fc914a72d855b35b4224cb85e97b6989 100644 (file)
@@ -8,7 +8,7 @@ IN: math.vectors.simd.cords
 <<
 <PRIVATE
 
-FUNCTOR: (define-simd-128-cord) ( A/2 A -- )
+<FUNCTOR: (define-simd-128-cord) ( A/2 A -- )
 
 A-rep    IS            ${A/2}-rep
 >A/2     IS            >${A/2}
@@ -72,7 +72,7 @@ SYNTAX: A{ \ } [ >A ] parse-literal ;
     A-rep >>rep
 \ A typedef
 
-;FUNCTOR
+;FUNCTOR>
 
 : define-simd-128-cord ( A/2 T -- )
     [ define-specialized-cord ]
index 5434a4c24f5e2b97e23a95a107e57a65b5107484..1edbdf03f46fcdc76eed4224a455e4e8a931dac8 100644 (file)
@@ -263,7 +263,7 @@ M: simd-128 pprint* pprint-object ;
 
 ! SIMD concrete type functor
 
-FUNCTOR: define-simd-128 ( T -- )
+<FUNCTOR: define-simd-128 ( T -- )
 
 A      DEFINES-CLASS ${T}
 A-rep  IS            ${T}-rep
@@ -329,7 +329,7 @@ c:<c-type>
     A-rep >>rep
 \ A c:typedef
 
-;FUNCTOR
+;FUNCTOR>
 
 SYNTAX: SIMD-128:
     scan-token define-simd-128 ;
index 766fbe87c0b0cf75a1c2143b8a48c8954420844f..74b513261f7dd0de0b536aff48ab0bfaa341a820 100644 (file)
@@ -27,7 +27,7 @@ GENERIC: cord-append ( seq1 seq2 -- cord )
 M: object cord-append
     generic-cord boa ; inline
 
-FUNCTOR: define-specialized-cord ( T C -- )
+<FUNCTOR: define-specialized-cord ( T C -- )
 
 T-cord DEFINES-CLASS ${C}
 
@@ -41,7 +41,7 @@ M: T cord-append
     2dup [ T instance? ] both?
     [ T-cord boa ] [ generic-cord boa ] if ; inline
 
-;FUNCTOR
+;FUNCTOR>
 
 : cord-map ( cord quot -- cord' )
     [ [ head>> ] dip call ]
index 8e9ea6a9ea88003c0346636fbf074e9e219f0d2d..c4078576c4d8f1583b45743012caf175cd85db7e 100644 (file)
@@ -3,7 +3,7 @@
 USING: functors kernel math.order sequences sorting ;
 IN: sorting.functor
 
-FUNCTOR: define-sorting ( NAME QUOT -- )
+<FUNCTOR: define-sorting ( NAME QUOT -- )
 
 NAME<=> DEFINES ${NAME}<=>
 NAME>=< DEFINES ${NAME}>=<
@@ -13,4 +13,4 @@ WHERE
 : NAME<=> ( obj1 obj2 -- <=> ) QUOT compare ;
 : NAME>=< ( obj1 obj2 -- >=< ) NAME<=> invert-comparison ;
 
-;FUNCTOR
+;FUNCTOR>
index 7976a5c14865f8b062383393de22f7d97e1642de..bd221cc6b017c5ff53d3fece35dad592ff9cc36a 100644 (file)
@@ -38,7 +38,7 @@ GENERIC: direct-like ( alien len exemplar -- seq )
 M: byte-array nth-c-ptr <displaced-alien> ; inline
 M: byte-array direct-like drop uchar <c-direct-array> ; inline
 
-FUNCTOR: define-array ( T -- )
+<FUNCTOR: define-array ( T -- )
 
 A          DEFINES-CLASS ${T}-array
 <A>        DEFINES <${A}>
@@ -103,7 +103,7 @@ M: A vs* [ * \ T c-type-clamp ] 2map ; inline
 
 M: A v*high [ * \ T heap-size neg shift ] 2map ; inline
 
-;FUNCTOR
+;FUNCTOR>
 
 : specialized-array-vocab ( c-type -- vocab )
     [
index 52ec17ae86ed92fcd319825517c92fb60bcee819..721aeef9072973662fa2468f5b1b428fc9d20f09 100644 (file)
@@ -13,7 +13,7 @@ MIXIN: specialized-vector
 
 <PRIVATE
 
-FUNCTOR: define-vector ( T -- )
+<FUNCTOR: define-vector ( T -- )
 
 V DEFINES-CLASS ${T}-vector
 
@@ -56,7 +56,7 @@ SYNTAX: V{ \ } [ >V ] parse-literal ;
 INSTANCE: V specialized-vector
 INSTANCE: V growable
 
-;FUNCTOR
+;FUNCTOR>
 
 : specialized-vector-vocab ( c-type -- vocab )
     [
index 1ed3c867265a9ecb5cb1d97ca658dc7e4ca6363c..a08d7932a81ed8a8f3c5e41fb261e33e131b74fc 100644 (file)
@@ -34,7 +34,7 @@ MACRO: write-tuple ( class -- quot )
 
 PRIVATE>
 
-FUNCTOR: define-tuple-array ( CLASS -- )
+<FUNCTOR: define-tuple-array ( CLASS -- )
 
 CLASS IS ${CLASS}
 
@@ -71,6 +71,6 @@ M: CLASS-array like drop dup CLASS-array? [ >CLASS-array ] unless ; inline
 
 INSTANCE: CLASS-array sequence
 
-;FUNCTOR
+;FUNCTOR>
 
 SYNTAX: TUPLE-ARRAY: scan-word define-tuple-array ;
index 32c551b38503d4d50e35066bdb089dc595f73180..d47a80025f2266db866573bd339722fcdb546454 100644 (file)
@@ -4,7 +4,7 @@ USING: classes functors growable kernel math sequences
 sequences.private ;
 IN: vectors.functor
 
-FUNCTOR: define-vector ( V A <A> -- )
+<FUNCTOR: define-vector ( V A <A> -- )
 
 <V> DEFINES <${V}>
 >V  DEFINES >${V}
@@ -32,4 +32,4 @@ M: V equal? over V instance? [ sequence= ] [ 2drop f ] if ;
 
 INSTANCE: V growable
 
-;FUNCTOR
+;FUNCTOR>
index 9c69d1feb4b1a394aee0dd966ee37c7895bf7b7e..0fa4b5b0bece82a8fe67d1e4a49454dd5b33f1f6 100644 (file)
@@ -14,7 +14,7 @@ IN: annotations
     [ { [ word? ] [ vocabulary>> "annotations" = ] } 1&& not ]
     filter ;
 
-FUNCTOR: define-annotation ( NAME -- )
+<FUNCTOR: define-annotation ( NAME -- )
 
 (NAME) DEFINES (${NAME})
 !NAME  DEFINES !${NAME}
@@ -31,7 +31,7 @@ SYNTAX: !NAME (parse-annotation) \ (NAME) suffix! ;
 : NAMEs. ( -- )
     NAMEs sorted-definitions. ;
 
-;FUNCTOR
+;FUNCTOR>
 
 CONSTANT: annotation-tags {
     "XXX" "TODO" "FIXME" "BUG" "REVIEW" "LICENSE"
index 6a74f434846607c57f0507684236d24b520eaacf..07c62f6355d148d3c378bff88b42564b94f12fd7 100644 (file)
@@ -52,4 +52,4 @@ IN: arrays.shaped.tests
 ] unit-test
 
 
-{ } [ 15 <iota> { 3 5 1 } reshape drop ] unit-test
\ No newline at end of file
+{ } [ 15 <iota> { 3 5 1 } reshape drop ] unit-test
index cc5b53495d36d93758e7cbbabbc4d056c91f6bc9..650e7e61b04759c1d39d5af2ea6103cd6a1eed00 100644 (file)
@@ -45,7 +45,7 @@ MACRO: (vectored-element>) ( struct-class -- quot: ( elt -- struct ) )
 SLOT: (n)
 SLOT: (vectored)
 
-FUNCTOR: define-vectored-accessors ( S>> S<< T -- )
+<FUNCTOR: define-vectored-accessors ( S>> S<< T -- )
 
 WHERE
 
@@ -54,14 +54,14 @@ M: T S>>
 M: T S<<
     [ (n)>> ] [ (vectored)>> S>> ] bi set-nth-unsafe ; inline
 
-;FUNCTOR
+;FUNCTOR>
 
 PRIVATE>
 
 GENERIC: struct-transpose ( structstruct -- ssttrruucctt )
 GENERIC: vectored-element> ( elt -- struct )
 
-FUNCTOR: define-vectored-struct ( T -- )
+<FUNCTOR: define-vectored-struct ( T -- )
 
 T-array [ T array-class-of ]
 
@@ -111,7 +111,7 @@ M: T-array struct-transpose
     dup length [ nip <iota> ] [ drop ] [ nip (vectored-T) ] 2tri
     [ [ [ nth ] [ set-nth ] bi-curry* bi ] 2curry each ] keep ; inline
 
-;FUNCTOR
+;FUNCTOR>
 
 SYNTAX: VECTORED-STRUCT:
     scan-word define-vectored-struct ;
index e455d811528c42d2a0a090a55915ee27c3df5228..85df45a0939053ad993f0148687d73d1752e62d7 100644 (file)
@@ -247,7 +247,7 @@ M: blas-matrix-base equal?
 
 <<
 
-FUNCTOR: (define-blas-matrix) ( TYPE T U C -- )
+<FUNCTOR: (define-blas-matrix) ( TYPE T U C -- )
 
 VECTOR      IS ${TYPE}-blas-vector
 <VECTOR>    IS <${TYPE}-blas-vector>
@@ -296,7 +296,7 @@ SYNTAX: XMATRIX{ \ } [ >MATRIX ] parse-literal ;
 M: MATRIX pprint-delims
     drop \ XMATRIX{ \ } ;
 
-;FUNCTOR
+;FUNCTOR>
 
 
 : define-real-blas-matrix ( TYPE T -- )
index 16d02b997e76dc45d3dfc0c9201a010ef2aae566..9bf81f2c82f8e6557d20d2cbca618612212f7a7d 100644 (file)
@@ -129,7 +129,7 @@ M: blas-vector-base virtual@
 
 <<
 
-FUNCTOR: (define-blas-vector) ( TYPE T -- )
+<FUNCTOR: (define-blas-vector) ( TYPE T -- )
 
 <DIRECT-ARRAY> IS <direct-${TYPE}-array>
 XCOPY          IS ${T}COPY
@@ -184,10 +184,10 @@ SYNTAX: XVECTOR{ \ } [ >VECTOR ] parse-literal ;
 M: VECTOR pprint-delims
     drop \ XVECTOR{ \ } ;
 
-;FUNCTOR
+;FUNCTOR>
 
 
-FUNCTOR: (define-real-blas-vector) ( TYPE T -- )
+<FUNCTOR: (define-real-blas-vector) ( TYPE T -- )
 
 VECTOR         IS ${TYPE}-blas-vector
 XDOT           IS ${T}DOT
@@ -205,10 +205,10 @@ M: VECTOR Vnorm
 M: VECTOR Vasum
     (prepare-nrm2) XASUM ;
 
-;FUNCTOR
+;FUNCTOR>
 
 
-FUNCTOR: (define-complex-blas-vector) ( TYPE C S -- )
+<FUNCTOR: (define-complex-blas-vector) ( TYPE C S -- )
 
 VECTOR         IS ${TYPE}-blas-vector
 XDOTU          IS ${C}DOTU
@@ -227,7 +227,7 @@ M: VECTOR Vnorm
 M: VECTOR Vasum
     (prepare-nrm2) XXASUM ;
 
-;FUNCTOR
+;FUNCTOR>
 
 
 : define-real-blas-vector ( TYPE T -- )
index f8d7de66da7306d0008358cc8b0ff05c9d231abd..f024d58714bb0d1c3a87ad7c95a1f1ea5c680378 100644 (file)
@@ -180,7 +180,7 @@ computer-name"
     }
     { $slide "Functor for sorting"
         { $code
-            "FUNCTOR: define-sorting ( NAME QUOT -- )
+            "<FUNCTOR: define-sorting ( NAME QUOT -- )
 
 NAME<=> DEFINES ${NAME}<=>
 NAME>=< DEFINES ${NAME}>=<
@@ -191,7 +191,7 @@ WHERE
 : NAME>=< ( obj1 obj2 -- >=< )
     NAME<=> invert-comparison ;
 
-;FUNCTOR"
+;FUNCTOR>"
         }
     }
     { $slide "Example of sorting functor"
index 19f6d2d4b1404bc166568144e555b8d7ec7ffd3b..bfcba2e55b6795b92608f2814094c0dfe0ca4d33 100644 (file)
@@ -5,7 +5,7 @@ destructors fry functors kernel locals sequences serialize
 tokyo.alien.tcutil tokyo.utils vectors ;
 IN: tokyo.assoc-functor
 
-FUNCTOR: define-tokyo-assoc-api ( T N -- )
+<FUNCTOR: define-tokyo-assoc-api ( T N -- )
 
 DBGET      IS ${T}get
 DBPUT      IS ${T}put
@@ -57,4 +57,4 @@ M: TYPE equal? assoc= ;
 
 M: TYPE hashcode* assoc-hashcode ;
 
-;FUNCTOR
+;FUNCTOR>