Skip to content

Commit 3c9ec83

Browse files
committed
add displayException for Failure
1 parent 4646661 commit 3c9ec83

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

io-sim/src/Control/Monad/IOSim.hs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ module Control.Monad.IOSim (
4141
import Prelude
4242

4343
import Data.Dynamic (fromDynamic)
44+
import Data.List (intercalate)
4445
import Data.Typeable (Typeable)
4546

4647
import Control.Exception (throw)
@@ -111,7 +112,14 @@ data Failure =
111112
| FailureSloppyShutdown [LabeledThread]
112113
deriving Show
113114

114-
instance Exception Failure
115+
instance Exception Failure where
116+
displayException (FailureException err) = displayException err
117+
displayException FailureDeadlock = "<<io-sim deadlock>>"
118+
displayException (FailureSloppyShutdown threads) =
119+
concat [ "<<io-sim sloppy shutdown: "
120+
, intercalate "," (show `map` threads)
121+
, ">>"
122+
]
115123

116124
-- | 'IOSim' is a pure monad.
117125
--

0 commit comments

Comments
 (0)