 
 : (unboxed-types) ( type -- types )
     dup unboxable-tuple-class?
-    [ all-slots [ class>> (unboxed-types) ] map concat ]
+    [
+        dup dup tuple-layout depends-on-tuple-layout
+        all-slots [ class>> (unboxed-types) ] map concat
+    ]
     [ 1array ] if ;
 
 : unboxed-types ( types -- types' )


: (unboxer) ( type -- quot )
    dup unboxable-tuple-class? [
        all-slots [
            [ name>> reader-word 1quotation ]
            [ class>> (unboxer) ] bi compose


: boxer ( type -- quot )
    dup unboxable-tuple-class?
    [
        dup dup tuple-layout depends-on-tuple-layout
        [ all-slots [ class>> ] map make-boxer ]
        [ [ boa ] curry ]
        bi compose
    ]
    [ drop [ ] ] if ;

: make-boxer ( types -- quot )
