While direct support for seqs and strings is not here (it's planned, according
to the manual), you can wrap them in objects.
type
MySeq[T] = object
data: seq[T]
Cuda = object
var foo = cast[ptr[Cuda, MySeq[int]]](alloc sizeOf(MySeq[int]))
foo.data = newSeq[int]()
foo.data.add 7
echo foo.data[0]
or with constructor and wrapped procs
proc newMySeq[T](size = 0.Natural): Cuda ptr MySeq[T] =
result = cast[ptr[Cuda, MySeq[T]]](alloc sizeOf(MySeq[T]))
result.data = newSeq[T](size)
proc add[T](s: Cuda ptr MySeq[T], v: T) = s.data.add v
proc `[]`[T](s: Cuda ptr MySeq[T], i: int): T = s.data[i]
for more convenient usage
var s = newMySeq[float]()
s.add 5
echo s[0]