@@ -39,7 +39,6 @@ getSequenceMaybeBelow
39 :: ( IsStream t
39 :: ( IsStream t
41 , MonadTrans t
41 , MonadTrans t
42− , Applicative (t (MaybeT m))
43 , MonadIO (t (MaybeT m))
42 , MonadIO (t (MaybeT m))
45 => t (MaybeT m) ()
44 => t (MaybeT m) ()
@@ -102,7 +101,6 @@ getSequenceEitherBelow
102 :: ( IsStream t
101 :: ( IsStream t
103 , MonadTrans t
102 , MonadTrans t
104 , Monad m
103 , Monad m
106 , MonadIO (t (ExceptT String m))
104 , MonadIO (t (ExceptT String m))
108 => t (ExceptT String m) ()
106 => t (ExceptT String m) ()
@@ -136,8 +134,6 @@ getSequenceEitherAsyncBelow
136 :: ( IsStream t
134 :: ( IsStream t
137 , MonadTrans t
135 , MonadTrans t
138 , MonadIO m
136 , MonadIO m
141 , MonadIO (t (ExceptT String m))
137 , MonadIO (t (ExceptT String m))
142 , Semigroup (t (ExceptT String m) Integer)
138 , Semigroup (t (ExceptT String m) Integer)
@@ -171,7 +167,7 @@ mainEitherAsyncBelow = do
172-- Here we can use catchE directly but will have to use monad-control to lift
168-- Here we can use catchE directly but will have to use monad-control to lift
173-- stream operations with stream arguments.
169-- stream operations with stream arguments.
174−getSequenceEitherAbove :: (IsStream t, Monad m, MonadIO (t m))
170+getSequenceEitherAbove :: (IsStream t, MonadIO (t m))
175 => ExceptT String (t m) ()
171 => ExceptT String (t m) ()
176getSequenceEitherAbove = do
172getSequenceEitherAbove = do
177 liftIO $ putStrLn "ExceptT above streamly: Enter one char per line: "
173 liftIO $ putStrLn "ExceptT above streamly: Enter one char per line: "
@@ -185,8 +181,7 @@ getSequenceEitherAbove = do
185 r2 <- liftIO getLine
181 r2 <- liftIO getLine
186 when (r2 /= "y") $ throwE $ "Expecting y got: " <> r2
182 when (r2 /= "y") $ throwE $ "Expecting y got: " <> r2
188−mainEitherAbove :: (IsStream t, Monad m, MonadIO (t m))
184+mainEitherAbove :: (IsStream t, MonadIO (t m)) => ExceptT String (t m) ()
189− => ExceptT String (t m) ()
190mainEitherAbove =
185mainEitherAbove =
191 catchE (getSequenceEitherAbove >> liftIO (putStrLn "Bingo"))
186 catchE (getSequenceEitherAbove >> liftIO (putStrLn "Bingo"))
192 (liftIO . putStrLn)
187 (liftIO . putStrLn)
@@ -202,7 +197,7 @@ instance Exception Unexpected
202-- Note that unlike when ExceptT is used on top, MonadThrow terminates all
197-- Note that unlike when ExceptT is used on top, MonadThrow terminates all
203-- iterations of non-determinism rather then just the current iteration.
198-- iterations of non-determinism rather then just the current iteration.
205−getSequenceMonadThrow :: (IsStream t, Monad m, MonadIO (t m), MonadThrow (t m))
200+getSequenceMonadThrow :: (IsStream t, MonadIO (t m), MonadThrow (t m))
206 => t m ()
201 => t m ()
207getSequenceMonadThrow = do
202getSequenceMonadThrow = do
208 liftIO $ putStrLn "MonadThrow in streamly: Enter one char per line: "
203 liftIO $ putStrLn "MonadThrow in streamly: Enter one char per line: "
@@ -265,7 +260,7 @@ mainContBelow = do
265-- Using ContT above streamly
260-- Using ContT above streamly
266-------------------------------------------------------------------------------
261-------------------------------------------------------------------------------
268−getSequenceContAbove :: (IsStream t, Monad m, MonadIO (t m))
263+getSequenceContAbove :: (IsStream t, MonadIO (t m))
269 => ContT r (t m) (Either String ())
264 => ContT r (t m) (Either String ())
270getSequenceContAbove = do
265getSequenceContAbove = do
271 liftIO $ putStrLn "ContT above streamly: Enter one char per line: "
266 liftIO $ putStrLn "ContT above streamly: Enter one char per line: "
@@ -284,7 +279,7 @@ getSequenceContAbove = do
284 then exit $ Left $ "Expecting y got: " <> r2
279 then exit $ Left $ "Expecting y got: " <> r2
285 else return $ Right ()
280 else return $ Right ()
287−mainContAbove :: (IsStream t, Monad m, MonadIO (t m)) => ContT r (t m) ()
282+mainContAbove :: (IsStream t, MonadIO (t m)) => ContT r (t m) ()
288mainContAbove = do
283mainContAbove = do
289 r <- getSequenceContAbove
284 r <- getSequenceContAbove
290 case r of
285 case r of