Linear types proposal for Hare
Summary
The article explains linear types in the Hare language and how a borrow checker enforces single use of linear resources. It covers open, write, and close operations, the use vs consumption distinction, and how linear types can be composed with other types. It also discusses arrays and slices with atomic operations, free types, and the distinction between pointers and references, as well as error handling with defer and lifetime annotations.