Exploring borrowed annotations in C#
One request I see fairly often for C# is to add the concept of borrowed values. That is values which can be used but
not stored beyond the invocation of a particular method. This generally comes up in the context of features which
require a form of ownership semantics like stack allocation of classes, using
statements, resource management, etc …
Borrowing provides a way to safely use owned values without complicated ownership transfer.