 
 SET-NTH [ ELT dup c:c-setter c:array-accessor ]
 
+BOA-EFFECT [ N "n" <repetition> >array { "v" } <effect> ]
+
 WHERE
 
 TUPLE: A < simd-128 ;

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

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

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

    [ nip [ 16 (byte-array) ] make-underlying ]
    [ length bad-simd-length ] if ; inline

! M: simd-128 >pprint-sequence ;
! M: simd-128 pprint* pprint-object ;

INSTANCE: simd-128 sequence

