Hello, I know that nim uses under-the-hood optimizations to avoid copying parameters when it can and prefer passing objects by reference, but is it safe to rely on this behavior ? Let me explain: For example I have some `User` objects stored in an internal table, and a `lent` / `var` getter to ensure returning a reference when trying to get a `User`, so if I then pass around that object to different functions is there a guarantee that the adress of the object will always stay the same inside those functions ? can I rely on address comparison for checking if the user is present in the table for example ? and if not can I use a pragma to enforce passing an object by reference when I don't want to pass it as a var ?\