: malloc-underlying ( obj -- alien ) underlying>> malloc-byte-array ; : sequence>arg ( seq type -- alien ) { { "bool*" [ >bool-array ] } { "char*" [ >char-array ] } { "uchar*" [ >uchar-array ] } { "short*" [ >short-array ] } { "ushort*" [ >ushort-array ] } { "int*" [ >int-array ] } { "uint*" [ >uint-array ] } { "long*" [ >long-array ] } { "ulong*" [ >ulong-array ] } { "float*" [ >float-array ] } { "double*" [ >double-array ] } { "void*" [ [ (obj>arg) ] map >void*-array ] } { "bool**" [ [ >bool-array malloc-underlying ] map >void*-array ] } { "char**" [ dup first string? [ utf8 strings>alien ] [ [ >char-array malloc-underlying ] map >void*-array ] if ] } { "uchar**" [ [ >uchar-array malloc-underlying ] map >void*-array ] } { "short**" [ [ >short-array malloc-underlying ] map >void*-array ] } { "ushort**" [ [ >ushort-array malloc-underlying ] map >void*-array ] } { "int**" [ [ >int-array malloc-underlying ] map >void*-array ] } { "uint**" [ [ >uint-array malloc-underlying ] map >void*-array ] } { "long**" [ [ >long-array malloc-underlying ] map >void*-array ] } { "ulong**" [ [ >ulong-array malloc-underlying ] map >void*-array ] } { "float**" [ [ >float-array malloc-underlying ] map >void*-array ] } { "double**" [ [ >double-array malloc-underlying ] map >void*-array ] } { "void**" [ [ [ (obj>arg) ] map >void*-array malloc-underlying ] >void*-array ] } } case malloc-underlying ;