 
 M: complex (serialize) ( obj -- )
     CHAR: c write1
-    dup real-part (serialize)
-    imaginary-part (serialize) ;
+    [ real-part (serialize) ]
+    [ imaginary-part (serialize) ] bi ;
 
 M: ratio (serialize) ( obj -- )
     CHAR: r write1
-    dup numerator (serialize)
-    denominator (serialize) ;
+    [ numerator (serialize) ]
+    [ denominator (serialize) ] bi ;
 
 : serialize-seq ( obj code -- )
     [


M: quotation (serialize) ( obj -- )
    [
        CHAR: q write1 [ >array (serialize) ] [ add-object ] bi
    ] serialize-shared ;

M: hashtable (serialize) ( obj -- )

    ] if ;

: deserialize-gensym ( -- word )
    gensym {
        [ intern-object ]
        [ (deserialize) define ]
        [ (deserialize) swap set-word-props ]
        [ ]
    } cleave ;

: deserialize-wrapper ( -- wrapper )
    (deserialize) <wrapper> ;
