     src>> needs-write-barrier? ;
 
 M: gc-map-insn eliminate-write-barrier
-    fresh-allocations get clear-assoc ;
+    fresh-allocations get clear-set ;
 
 M: ##copy eliminate-write-barrier
     [ src>> resolve-copy ] [ dst>> ] bi copies get set-at t ;

GENERIC: eliminate-write-barrier ( insn -- ? )

: fresh-allocation ( vreg -- )
    fresh-allocations get conjoin ;

M: ##allot eliminate-write-barrier
    dst>> fresh-allocation t ;

: mutated-object ( vreg -- )
    resolve-copy mutated-objects get conjoin ;

M: ##set-slot eliminate-write-barrier
    obj>> mutated-object t ;


: needs-write-barrier? ( insn -- ? )
    resolve-copy {
        [ fresh-allocations get in? not ]
        [ mutated-objects get in? ]
    } 1&& ;

M: ##write-barrier eliminate-write-barrier
