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.

Reply via email to