Please sign in to comment.
Fix exception propagation with upstream yield.
Downstream exceptions need to be caught by the handler of an upstream yield while downstream is executing. Discarding the upstream exception handler, as the previous composition did, is wrong for two reasons: 1. Exception handlers are discarded after composing with a downstream identity. 2. 'Ensure' actions are not skipped (as they should be) if any action between a 'yield' and an 'ensure' fails. This fixes an issue found by Gabriel Gonzales: http://www.reddit.com/r/haskell/comments/qq5p6/pipescore_001_released/c3zpp82
- Loading branch information...
Showing with 48 additions and 21 deletions.