 
 : A-with ( n -- v ) \ A new simd-with ; inline
 : A-cast ( v -- v' ) \ A new simd-cast ; inline
-: A-boa ( ...n -- v ) \ A new simd-boa ; inline
-
-M: A pprint-delims drop \ A{ \ } ;
-SYNTAX: A{ \ } [ >A ] parse-literal ;
+
+\ A-boa { \ A simd-boa } >quotation BOA-EFFECT define-inline
+
+! M: A pprint-delims drop \ A{ \ } ;
+! SYNTAX: A{ \ } [ >A ] parse-literal ;
 
 c:<c-type>
     byte-array >>class


SET-NTH [ ELT dup c:c-setter c:array-accessor ]

WHERE

TUPLE: A < simd-128 ;

: simd-with ( n seq -- v )
    [ (simd-with) ] simd-construct-op ; inline

MACRO: simd-boa ( class -- )
    new dup length {
        { 2 [ '[ _ [ (simd-gather-2) ] simd-construct-op ] ] }
        { 4 [ '[ _ [ (simd-gather-4) ] simd-construct-op ] ] }
        [ swap '[ _ _ nsequence ] ]
    } case ;

: simd-cast ( v seq -- v' )
