on master help sign in
use QuantifiedConstraints on IsStream type class
a1e093aHarendra Kumar
src/Streamly/Streams/StreamK/Type.hs+12−1
@@ -8,6 +8,9 @@
8{-# LANGUAGE PatternSynonyms #-}
8{-# LANGUAGE PatternSynonyms #-}
9{-# LANGUAGE KindSignatures #-}
9{-# LANGUAGE KindSignatures #-}
10{-# LANGUAGE ViewPatterns #-}
10{-# LANGUAGE ViewPatterns #-}
11+#if __GLASGOW_HASKELL__ >= 806
12+{-# LANGUAGE QuantifiedConstraints #-}
13+#endif
11{-# LANGUAGE RankNTypes #-}
14{-# LANGUAGE RankNTypes #-}
12{-# LANGUAGE UndecidableInstances #-} -- XXX
15{-# LANGUAGE UndecidableInstances #-} -- XXX
13
16
@@ -142,7 +145,15 @@ infixr 5 |:
142-- some monad 'm'.
145-- some monad 'm'.
143--
146--
144-- @since 0.2.0
147-- @since 0.2.0
148+class
149+#if __GLASGOW_HASKELL__ >= 806
150+ ( forall m a. MonadAsync m => Semigroup (t m a)
151+ , forall m a. MonadAsync m => Monoid (t m a)
152+ , forall m. Monad m => Functor (t m)
153+ , forall m. MonadAsync m => Applicative (t m)
154+ ) =>
155+#endif
145−class IsStream t where
156+ IsStream t where
146 toStream :: t m a -> Stream m a
157 toStream :: t m a -> Stream m a
147 fromStream :: Stream m a -> t m a
158 fromStream :: Stream m a -> t m a
148 -- | Constructs a stream by adding a monadic action at the head of an
159 -- | Constructs a stream by adding a monadic action at the head of an