having
type Foo = object
ps : seq[ptr int]
proc `=destroy`(foo: var Foo) =
for p in foo.ps: p.dealloc
foo.ps = @[]
proc newFoo(n:int) : Foo =
result = Foo(ps:newSeq[ptr int](n))
for i in 0..<n: result.ps[i] = create(int)
are both lines required in destroy proc to recover all the heap ?