 PRIVATE>
 
 : simple-define-temp ( quot effect -- word )
-    [ [ define-temp ] with-compilation-unit ] call( quot effect -- word ) ;
+    [ define-temp ] with-compilation-unit ;
 
 : dfa>word ( dfa -- quot )
     dfa>main-word execution-quot '[ drop [ f ] 2dip @ ]

    transitions>quot ;

: states>code ( words dfa -- )
    [ ! with-compilation-unit doesn't compile, so we need call( -- )
        [
            '[
                dup _ word>quot
                (( last-match index string -- ? ))
                define-declared
            ] each
        ] with-compilation-unit
    ] call( words dfa -- ) ;

: states>words ( dfa -- words dfa )
    dup transitions>> keys [ gensym ] H{ } map>assoc

USING: regexp.classes kernel sequences regexp.negation
quotations assocs fry math locals combinators
accessors words compiler.units kernel.private strings
sequences.private arrays namespaces unicode.breaks
regexp.transition-tables combinators.short-circuit ;
IN: regexp.compiler

