Лінійні типи та логіка розділення є чудовими, але можуть вимагати небагато зусиль програміста. Наприклад, написання безпечного пов'язаного списку в Rust може бути досить важким.
Але є альтернатива, яка вимагає значно менших зусиль програміста, хоча і з менш суворими гарантіями. (Досить старий) потік роботи - це гарантувати безпеку пам’яті, використовуючи (як правило, стек) регіонів. Використовуючи умовивід регіону, компілятор може статично вирішити, в яку область повинен входити фрагмент виділених даних, і розподілити регіон, коли він виходить за межі області.
Вибір регіону є виразно безпечним (не може розібрати доступну пам'ять) і вимагає мінімальних втручань програміста, але він не є "загальним" (тобто він все одно може просочити пам'ять, хоча, безумовно, набагато краще, ніж "нічого не робити"), тому зазвичай поєднується з ГК на практиці. TheMLtonКомпілятор ML Kit використовує регіони для усунення більшості викликів GC, але він все ще має GC, оскільки в іншому випадку він все-таки просочить пам'ять. На думку деяких з перших піонерів у регіонах, висновок регіону насправді не був винайдений для цієї мети (я думаю, це було для автоматичної паралелізації, я думаю); але лише виявилося, що його можна використовувати і для управління пам'яттю.
Для початку я б сказав документ "Впровадження введеного λ-обчислення за типовою вартістю за допомогою цілої групи регіонів" Мадс Тофте та Жан-П'єр Талпін. Щоб отримати докладніші статті про висновки в регіоні, шукайте інші статті М. Тофте та Ж.-П. Талпін, деякі роботи П'єра Жувела, а також серія робіт про Циклона Грега Морріссета, Майка Хікса та Дана Гроссмана.