     guard-decimals [ >decimal< ] bi@ swapd + [ * ] dip <decimal> ;
 
 :: D/ ( D1 D2 a -- D3 )
-    D1 D2 guard-decimals 2drop
-    D1 >decimal< :> ( m1 e1 )
-    D2 >decimal< :> ( m2 e2 )
+    D1 D2 guard-decimals [ >decimal< ] bi@ :> ( m1 e1 m2 e2 )
     m1 a 10^ *
     m2 /i
 

    } 2&& ;

M: decimal before?
    guard-decimals scale-decimals
    [ mantissa>> ] bi@ < ;

: D-abs ( D -- D' )
    [ mantissa>> abs ] [ exponent>> ] bi <decimal> ;

SYNTAX: DECIMAL: parse-decimal suffix! ;

: decimal>ratio ( decimal -- ratio ) >decimal< 10^ * ;

: decimal>float ( decimal -- ratio ) decimal>ratio >float ;

: scale-mantissas ( D1 D2 -- m1 m2 exp )
