Rationale
It can be difficult to manage resource lifetimes, especially when laziness is involved. Simply local scoping can be inadequate. Resource scopes can decouple resource lifetimes from creating scope.
Plan
- Generalize from resource scopes to general scopes (succeed/fail/exit)
- with-open et al make scopes
- Some design work and code has been done
- find it and write it up
Issues
- Consider threads as well as nesting
- How do scopes interact with io! and stm
- Can we hydrate the fork/join tree where we need it?
Labels: