
Hi Stanislav,
On Thu, Sep 28, 2017 at 7:00 AM, Станислав Черничкин wrote: This lead to conflicting requirements:
- One should not care about asynchronous exceptions inside ST (it is not
possible to catch exception in ST, hence not possible to use something in
invalid state). More over, it is not even possible to do write
“exception-safe” code, because masking functions not available. You can't fork in ST :). So there's no need to mask there - values created
during the execution will be discarded and cannot be reused unless you use
unsafe*
2. Documentation. Should library authors explicitly mention async exceptions safety? For example https://hackage.haskell.org/
package/hashtables – is it async exceptions safe when used in IO? The hashtables library is not safe for concurrent modification, you need
locking for that. No masking is done right now either, which is probably a
mistake. We should mask when we stToIO.