@@ -334,10 +334,14 @@ monadthrowInstance _Type =
334334 [ clause
335335 []
336336 (normalB
337− (infixE
338− (Just (varE _lift))
339− (varE _dotOp)
340− (Just (varE _throwM))))
337+ (infixE
338+ (Just (conE _Type))
339+ (varE _dotOp)
340+ (Just
341+ (infixE
342+ (Just (varE (mkName "Stream.fromEffect")))
343+ (varE _dotOp)
344+ (Just (varE _throwM))))))
341345 []
342346 ]
343347 ]
@@ -589,11 +593,11 @@ mkZipType dtNameStr apOpStr isConcurrent =
589593-- instance (Monad (Parallel m), MonadIO m) => MonadIO (Parallel m)
590594-- where {{-# INLINE liftIO #-};
591595-- liftIO = Parallel . (Stream.fromEffect . liftIO)}
592−-- instance MonadTrans Parallel
593−-- where {{-# INLINE lift #-}; lift = Parallel . Stream.fromEffect}
594596-- instance (Monad (Parallel m),
595597-- MonadThrow m) => MonadThrow (Parallel m)
596−-- where {{-# INLINE throwM #-}; throwM = lift . throwM}
598+-- where {{-# INLINE throwM #-};
599+-- throwM = Parallel . (Stream.fromEffect . throwM)}
600+
597601mkCrossType
598602 :: String -- ^ Name of the type
599603 -> String -- ^ Function to use for (>>=)
@@ -613,7 +617,7 @@ mkCrossType dtNameStr bindOpStr isConcurrent =
613617 , readInstance _Type
614618 ]
615619 else []
616− , sequence
620+ , sequence $
617621 [ functorInstance _Type
618622 , mkStreamMonad dtNameStr classConstraints bindOpStr
619623 , mkStreamApplicative
@@ -623,10 +627,9 @@ mkCrossType dtNameStr bindOpStr isConcurrent =
623627 "Stream.fromPure"
624628 "ap"
625629 , monadioInstance _Type
626− , monadtransInstance _Type
627630 , monadthrowInstance _Type
628631 -- , monadreaderInstance _Type
629− ]
632+ ] ++ [monadtransInstance _Type | not isConcurrent]
630633 ]
631634
632635 where