Skip to content

Commit 90071e1

Browse files
iohk-bors[bot]coot
andauthored
Merge #2728
2728: Nicer displayException for io-sim's Failure r=coot a=coot Co-authored-by: Marcin Szamotulski <[email protected]>
2 parents 4646661 + 3c9ec83 commit 90071e1

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)