 : fixup-words ( -- )
     bootstrapping-image get [ dup word? [ fixup-word ] when ] map! drop ;
 
-M: word ' ;
+M: word prepare-object ;
 
 ! Wrappers
 
-M: wrapper '
-    [ wrapped>> ' wrapper [ emit ] emit-object ] cache-eql-object ;
+M: wrapper prepare-object
+    [ wrapped>> prepare-object wrapper [ emit ] emit-object ] cache-eql-object ;
 
 ! Strings
 : native> ( object -- object )

    [ [ (emit-tuple) ] cache-eq-object ]
    if ;

M: tuple ' emit-tuple ;

M: tombstone '
    state>> "((tombstone))" "((empty))" ?
    "hashtables.private" lookup-word def>> first
    [ emit-tuple ] cache-eql-object ;

! Arrays
: emit-array ( array -- offset )
    [ ' ] map array [ [ length emit-fixnum ] [ emit-seq ] bi ] emit-object ;

M: array ' [ emit-array ] cache-eq-object ;

! This is a hack. We need to detect arrays which are tuple
! layout arrays so that they can be internalized, but making


: t, ( -- ) t t-offset fixup ;

M: f prepare-object drop \ f type-number ;

:  0, ( -- )  0 >bignum prepare-object  0-offset fixup ;
:  1, ( -- )  1 >bignum prepare-object  1-offset fixup ;
: -1, ( -- ) -1 >bignum prepare-object -1-offset fixup ;

! Words

