Interesting, however if I understand this correctly:
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)
`result = ...` uses the custom allocator for the pointer to result.data `result.data` is still allocated via the default allocator within newSeq
