In C or C++ or in Go it would just be a matter of using a reference operator : f(&x), x being a "plain type".
How does it work in Nim? Ex: in the example hereunder, how do you pass ob1 to say() (obviously, it is not say(&ob1) or say(addr(ob1))) type rob = ref ob ob = object key: int proc say(r : rob) = echo r.key var ob1 = ob(key:42) Run