In an affinity-type system, resources can be used no more than once.
Starting with a Hindley-Milner type system, it seems that a simple way to ensure affinity matches is to simply remove the variable from the current input context whenever a typing rule for variables is used (as these slides on LinearML suggest, on page 15) .
Is that all you need to ensure intimacy? Or is there something more complicated?
source
share