There could be a feature such that when a particular nex type (such as an org) is created by a direct user keystroke (i.e. the user created it in code), then that gets tagged as a "literal".
A literal doesn't return itself when evaluated. It returns a copy of itself. Because it's "code." But the copy is NOT a literal. Only the actual object that was directly inserted by the user is a literal.
Would need a way to visually differentiate but idk what that would be.
At any rate this gets away from the problem where I have to call makeCopy EVERY TIME I evaluate nexes, such as integers etc.
There could be a feature such that when a particular nex type (such as an org) is created by a direct user keystroke (i.e. the user created it in code), then that gets tagged as a "literal".
A literal doesn't return itself when evaluated. It returns a copy of itself. Because it's "code." But the copy is NOT a literal. Only the actual object that was directly inserted by the user is a literal.
Would need a way to visually differentiate but idk what that would be.
At any rate this gets away from the problem where I have to call makeCopy EVERY TIME I evaluate nexes, such as integers etc.