 GENERIC: struct-slot-values ( struct -- sequence )
 
 M: struct-class reader-quot
-    nip
-    [ class>> c-type-getter-boxer ]
-    [ offset>> [ >c-ptr ] swap suffix ] bi prepend ;
+    nip (reader-quot) ;
 
 M: struct-class writer-quot
     nip (writer-quot) ;


! Struct as c-type

: align-offset ( offset class -- offset' )
    c-type-align align ;


    [ class>> c-type drop ] each ;

: (define-struct-class) ( class slots offsets-quot -- )
    [ drop struct f define-tuple-class ] swap
    '[
        make-slots dup
        [ check-struct-slots ] _ [ struct-align [ align ] keep ] tri
        (struct-word-props)
    ]
    [ drop define-struct-for-class ] 2tri ; inline

: define-struct-class ( class slots -- )
    [ struct-offsets ] (define-struct-class) ;
