     ] if ;
 
 : deserialize-gensym ( -- word )
-    gensym
-    dup intern-object
-    dup (deserialize) define
-    dup (deserialize) swap set-word-props ;
+    gensym {
+        [ intern-object ]
+        [ (deserialize) define ]
+        [ (deserialize) swap set-word-props ]
+        [ ]
+    } cleave ;
 
 : deserialize-wrapper ( -- wrapper )
     (deserialize) <wrapper> ;


M: complex (serialize) ( obj -- )
    CHAR: c write1
    dup real-part (serialize)
    imaginary-part (serialize) ;

M: ratio (serialize) ( obj -- )
    CHAR: r write1
    dup numerator (serialize)
    denominator (serialize) ;

: serialize-seq ( obj code -- )
    [


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

M: hashtable (serialize) ( obj -- )
