Skip to content

Commit

Permalink
Generalise type of traceSelectTraceEvents & co
Browse files Browse the repository at this point in the history
  • Loading branch information
bolt12 committed May 8, 2024
1 parent e4d2093 commit 693f9af
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions io-sim/src/Control/Monad/IOSim.hs
Original file line number Diff line number Diff line change
Expand Up @@ -296,8 +296,8 @@ printTraceEventsSay = mapM_ print . selectTraceEventsSay
--
traceSelectTraceEvents
:: (Time -> SimEventType -> Maybe b)
-> SimTrace a
-> Trace (SimResult a) b
-> Trace a SimEvent
-> Trace a b
traceSelectTraceEvents fn = bifoldr ( \ v _acc -> Nil v )
( \ eventCtx acc
-> case eventCtx of
Expand All @@ -316,7 +316,8 @@ traceSelectTraceEvents fn = bifoldr ( \ v _acc -> Nil v )
-- | Select dynamic events. It is a /total function/.
--
traceSelectTraceEventsDynamic :: forall a b. Typeable b
=> SimTrace a -> Trace (SimResult a) b
=> Trace a SimEvent
-> Trace a b
traceSelectTraceEventsDynamic = traceSelectTraceEvents fn
where
fn :: Time -> SimEventType -> Maybe b
Expand All @@ -326,7 +327,7 @@ traceSelectTraceEventsDynamic = traceSelectTraceEvents fn

-- | Select say events. It is a /total function/.
--
traceSelectTraceEventsSay :: forall a. SimTrace a -> Trace (SimResult a) String
traceSelectTraceEventsSay :: forall a. Trace a SimEvent -> Trace a String
traceSelectTraceEventsSay = traceSelectTraceEvents fn
where
fn :: Time -> SimEventType -> Maybe String
Expand Down

0 comments on commit 693f9af

Please sign in to comment.