Thank you for your answer. I suspect in the first proc you mean `=` instead of `==` ?
Also, I am sorry to ask you, the doThis() in the =sink proc, why is it needed?
Shouldn't the pointer copy be enough? Something like
proc `=sink`(dest: var MyVM; source: MyVM) =
dest.p = source.p
`=destroy`(dest)
Run
Note, I have reversed the pointer copy with the =destroy, because it makes more
sense to me first to copy the pointer and then to make it nil.
