         [ [ combinator? ] [ unknown-macro-input? ] bi* and ]
     } 2|| ;
 
-: finish ( word -- )
+: finish-compilation ( word -- )
     ! Recompile callers if the word's stack effect changed, then
     ! save the word's dependencies so that if they change, the
     ! word can get recompiled too.

    ! failed to infer.
    '[
        _ {
            [ start ]
            [ frontend ]
            [ backend ]
            [ finish ]
        } cleave
    ] with-return ;


: compiler-message ( string -- )
    "trace-compilation" get [ [ print flush ] with-global ] [ drop ] if ;

: start-compilation ( word -- )
    dup name>> compiler-message
    H{ } clone dependencies namespaces:set
    H{ } clone generic-dependencies namespaces:set
