Conversation

Hmm is it? I see two possibilities (which I think are different): no more than 1 copy/alias of this exists (uniqueness typing), vs. the caller only gets 1 copy of it. And the latter seems more likely...
1
Well, that's just what it means elsewhere -- how many copies you get to use, not how many exist. (There was something in the linear haskell paper wrt `forall a. (Foo -o a) -o a)` being an encoding of a linear value; maybe that gets you closer?)
1
Also IIUC, "linearity" of an arg means "callee may only use it once, caller any number of times", and "uniqueness" is the reverse, "caller may only use it once, callee any number of times", but I think you'd want to restrict both sides? At least Rust works that way...
1
1