I was researching the prior art similar to what I have been doing, dubbed “Linearly Versioned Monad.” This technique separates a monadic function into regions of different data versions using LinearTypes. Then I found these: “linear regions,” “monadic regions,” etc
References:
- Monadic Regions
- GitHub - basvandijk/regions: Provides the region monad for safely opening and working with scarce resources
- Fluet, Matthew, Greg Morrisett, and Amal Ahmed. “Linear regions are all you need.” Programming Languages and Systems: 15th European Symposium on Programming, ESOP 2006, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2006, Vienna, Austria, March 27-28, 2006. Proceedings 15. Springer Berlin Heidelberg, 2006.
- Chen, Chih-Ping, and Paul Hudak. “Rolling your own mutable ADT—a connection between linear types and monads.” Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. 1997.