Skip to content
  • Ian Lynagh's avatar
    MERGED: Fix a bug in the handling of nested orElse · 5ea49271
    Ian Lynagh authored
        commit f184d9ca
        Author: Simon Marlow <marlowsd@gmail.com>
        Date:   Mon Dec 10 12:00:54 2012 +0000
    
        Fix a bug in the handling of nested orElse
    
        Exposed by the following snippet, courtesy of Bas van Dijk and Patrick
        Palka on libraries@haskell.org:
    
        import Control.Concurrent.STM
        main = do
          x <- atomically $ do
                 t <- newTVar 1
                 writeTVar t 2
                 ((readTVar t >> retry) `orElse` return ()) `orElse` return ()
                 readTVar t
          print x
    5ea49271