 
 : optimize-modular-arithmetic ( nodes -- nodes' )
     dup compute-modular-candidates compute-modular-values
-    modular-values get assoc-empty? [
+    modular-values get null? [
         [ optimize-modular-arithmetic* ] map-nodes
     ] unless ;

    actually-used-by [ node>> only-reads-low-order? ] all? ;

: (compute-modular-values) ( -- )
    modular-values get keys [
        dup only-used-as-low-order?
        [ drop ] [ modular-values get delete-at changed? on ] if
    ] each ;

: compute-modular-values ( -- )

    drop ;

: compute-modular-candidates ( nodes -- )
    HS{ } clone modular-values set
    HS{ } clone fixnum-values set
    [ compute-modular-candidates* ] each-node ;

GENERIC: only-reads-low-order? ( node -- ? )
