on 43dda21 help sign in
streamly/docs/User/ProjectRelated/API-changelog.txt
261 lines 12 kB history raw
1# API diff as generated by cabal-diff with minor edits.
2# ~~~ means deprecated module
3# ~~ means deprecated symbol
5#----------------------------
6# Changes from 0.8.0 to 0.8.1
7#----------------------------
9@@@ Streamly.FileSystem.Handle
10++ getChunk :: MonadIO m => Int -> Handle -> m (Array Word8)
11++ putChunk :: (MonadIO m, Storable a) => Handle -> Array a -> m ()
13#----------------------------
14# Changes from 0.7.3 to 0.8.0
15#----------------------------
17# Deprecated, merged into Streamly.Prelude
18~~~ Streamly
19# Fixity changes
20++ infixr 6 `ahead`
21++ infixr 6 `async`
22++ infixr 6 `parallel`
23++ infixr 6 `serial`
24++ infixr 6 `wAsync`
25++ infixr 6 `wSerial`
27# Added
28@@@ Streamly.Console.Stdio
30# Deprecated, renamed
31~~~ Streamly.Memory.Array
32@@@ Streamly.Data.Array.Foreign
34# Moved from Streamly.Memory.Array
35++ data Array a
36++ fromList :: Storable a => [a] -> Array a
37++ fromListN :: Storable a => Int -> [a] -> Array a
38++ length :: forall a. Storable a => Array a -> Int
39++ read :: forall m a. (Monad m, Storable a) => Unfold m (Array a) a
40++ toList :: Storable a => Array a -> [a]
41++ write :: forall m a. (MonadIO m, Storable a) => Fold m a (Array a)
42++ writeN :: forall m a. (MonadIO m, Storable a) => Int -> Fold m a (Array a)
44# Added
45++ asBytes :: Array a -> Array Word8
46++ cast :: forall a b. Storable b => Array a -> Maybe (Array b)
47++ getIndex :: Storable a => Array a -> Int -> Maybe a
48++ readRev :: forall m a. (Monad m, Storable a) => Unfold m (Array a) a
49++ writeLastN :: (Storable a, MonadIO m) => Int -> Fold m a (Array a)
51@@@ Streamly.Data.Fold
52# Signature changed
53 - product :: (Monad m, Num a) => Fold m a a
54 + product :: (Monad m, Num a, Eq a) => Fold m a a
56# Removed (Moved to the Streamly.Data.Fold.Tee module)
57-- instance (Monad m, Floating b) => Floating (Fold m a b)
58-- instance (Monad m, GHC.Num.Num b) => GHC.Num.Num (Fold m a b)
59-- instance (Monad m, GHC.Real.Fractional b) => GHC.Real.Fractional (Fold m a b)
60-- instance (Semigroup b, Monad m) => Semigroup (Fold m a b)
61-- instance (Semigroup b, Monoid b, Monad m) => Monoid (Fold m a b)
62-- instance Applicative m => Applicative (Fold m a)
64# Renamed
65~~ mapM :: Monad m => (b -> m c) -> Fold m a b -> Fold m a c
66++ rmapM :: Monad m => (b -> m c) -> Fold m a b -> Fold m a c
68# Deprecated
69~~ sequence :: Monad m => Fold m a (m b) -> Fold m a b
71# Added
72++ catMaybes :: Monad m => Fold m a b -> Fold m (Maybe a) b
73++ chunksOf :: Monad m => Int -> Fold m a b -> Fold m b c -> Fold m a c
74++ concatMap :: Monad m => (b -> Fold m a c) -> Fold m a b -> Fold m a c
75++ filter :: Monad m => (a -> Bool) -> Fold m a r -> Fold m a r
76++ filterM :: Monad m => (a -> m Bool) -> Fold m a r -> Fold m a r
77++ foldl' :: Monad m => (b -> a -> b) -> b -> Fold m a b
78++ foldlM' :: Monad m => (b -> a -> m b) -> m b -> Fold m a b
79++ foldr :: Monad m => (a -> b -> b) -> b -> Fold m a b
80++ lmap :: (a -> b) -> Fold m b r -> Fold m a r
81++ lmapM :: Monad m => (a -> m b) -> Fold m b r -> Fold m a r
82++ many :: Monad m => Fold m a b -> Fold m b c -> Fold m a c
83++ mapMaybe :: Monad m => (a -> Maybe b) -> Fold m b r -> Fold m a r
84++ rollingHash :: (Monad m, Enum a) => Fold m a Int64
85++ rollingHashWithSalt :: (Monad m, Enum a) => Int64 -> Fold m a Int64
86++ sconcat :: (Monad m, Semigroup a) => a -> Fold m a a
87++ serialWith :: Monad m => (a -> b -> c) -> Fold m x a -> Fold m x b -> Fold m x c
88++ take :: Monad m => Int -> Fold m a b -> Fold m a b
89++ takeEndBy :: Monad m => (a -> Bool) -> Fold m a b -> Fold m a b
90++ takeEndBy_ :: Monad m => (a -> Bool) -> Fold m a b -> Fold m a b
91++ teeWith :: Monad m => (a -> b -> c) -> Fold m x a -> Fold m x b -> Fold m x c
92++ toListRev :: Monad m => Fold m a [a]
94# Added
95@@@ Streamly.Data.Fold.Tee
97@@@ Streamly.Data.Unfold
98# Added
99++ crossWith :: Monad m => (b -> c -> d) -> Unfold m a b -> Unfold m a c -> Unfold m a d
100++ drop :: Applicative m => Int -> Unfold m a b -> Unfold m a b
101++ dropWhile :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
102++ dropWhileM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
103++ filter :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
104++ filterM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
105++ fromList :: Applicative m => Unfold m [a] a
106++ fromListM :: Applicative m => Unfold m [m a] a
107++ fromStream :: (IsStream t, Applicative m) => Unfold m (t m a) a
108++ function :: Applicative m => (a -> b) -> Unfold m a b
109++ functionM :: Applicative m => (a -> m b) -> Unfold m a b
110++ iterateM :: Monad m => (a -> m a) -> Unfold m (m a) a
111++ lmap :: (a -> c) -> Unfold m c b -> Unfold m a b
112++ lmapM :: Monad m => (a -> m c) -> Unfold m c b -> Unfold m a b
113++ many :: Monad m => Unfold m a b -> Unfold m b c -> Unfold m a c
114++ mapM :: Monad m => (b -> m c) -> Unfold m a b -> Unfold m a c
115++ repeatM :: Monad m => Unfold m (m a) a
116++ replicateM :: Monad m => Int -> Unfold m (m a) a
117++ take :: Monad m => Int -> Unfold m a b -> Unfold m a b
118++ takeWhile :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
119++ takeWhileM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
120++ unfoldr :: Applicative m => (a -> Maybe (b, a)) -> Unfold m a b
121++ unfoldrM :: Applicative m => (a -> m (Maybe (b, a))) -> Unfold m a b
122++ zipWith :: Monad m => (b -> c -> d) -> Unfold m a b -> Unfold m a c -> Unfold m a d
124# Deprecated, renamed to Streamly.Unicode.Stream
125~~~ Streamly.Data.Unicode.Stream
127@@@ Streamly.Network.Socket
128# Added
129++ forSocketM :: (MonadMask m, MonadIO m) => (Socket -> m ()) -> Socket -> m ()
130++ readChunk :: Int -> Socket -> IO (Array Word8)
131++ writeChunk :: Storable a => Socket -> Array a -> IO ()
132++ writeChunksWithBufferOf :: (MonadIO m, Storable a) => Int -> Socket -> Fold m (Array a) ()
134@@@ Streamly.Prelude
135# Signature changed
136 - after :: (IsStream t, Monad m) => m b -> t m a -> t m a
137 + after :: (IsStream t, MonadIO m, MonadBaseControl IO m) => m b -> t m a -> t m a
138 - bracket :: (IsStream t, MonadCatch m) => m b -> (b -> m c) -> (b -> t m a) -> t m a
139 + bracket :: (IsStream t, MonadAsync m, MonadCatch m) => m b -> (b -> m c) -> (b -> t m a) -> t m a
140 - concatMapWith :: IsStream t => (forall c. t m c -> t m c -> t m c) -> (a -> t m b) -> t m a -> t m b
141 + concatMapWith :: IsStream t => (t m b -> t m b -> t m b) -> (a -> t m b) -> t m a -> t m b
142 - finally :: (IsStream t, MonadCatch m) => m b -> t m a -> t m a
143 + finally :: (IsStream t, MonadAsync m, MonadCatch m) => m b -> t m a -> t m a
144 - foldlM' :: Monad m => (b -> a -> m b) -> b -> SerialT m a -> m b
145 + foldlM' :: Monad m => (b -> a -> m b) -> m b -> SerialT m a -> m b
146 - postscanlM' :: (IsStream t, Monad m) => (b -> a -> m b) -> b -> t m a -> t m b
147 + postscanlM' :: (IsStream t, Monad m) => (b -> a -> m b) -> m b -> t m a -> t m b
148 - scanlM' :: (IsStream t, Monad m) => (b -> a -> m b) -> b -> t m a -> t m b
149 + scanlM' :: (IsStream t, Monad m) => (b -> a -> m b) -> m b -> t m a -> t m b
151# Renamed
152~~ yieldM :: (Monad m, IsStream t) => m a -> t m a
153++ fromEffect :: (Monad m, IsStream t) => m a -> t m a
154~~ yield :: IsStream t => a -> t m a
155++ fromPure :: IsStream t => a -> t m a
156~~ concatUnfold :: (IsStream t, Monad m) => Unfold m a b -> t m a -> t m b
157++ unfoldMany :: (IsStream t, Monad m) => Unfold m a b -> t m a -> t m b
159# Moved from "Streamly" module
160## Fixity change
161++ infixr 6 `ahead`
162++ infixr 6 `async`
163++ infixr 6 `parallel`
164++ infixr 6 `serial`
165++ infixr 6 `wAsync`
166++ infixr 6 `wSerial`
167## Renamed
168~~ foldWith :: (IsStream t, Foldable f) => (t m a -> t m a -> t m a) -> f (t m a) -> t m a
169++ concatFoldableWith :: (IsStream t, Foldable f) => (t m a -> t m a -> t m a) -> f (t m a) -> t m a
170~~ forEachWith :: (IsStream t, Foldable f) => (t m b -> t m b -> t m b) -> f a -> (a -> t m b) -> t m b
171++ concatForFoldableWith :: (IsStream t, Foldable f) => (t m b -> t m b -> t m b) -> f a -> (a -> t m b) -> t m b
172~~ foldMapWith :: (IsStream t, Foldable f) => (t m b -> t m b -> t m b) -> (a -> t m b) -> f a -> t m b
173++ concatMapFoldableWith :: (IsStream t, Foldable f) => (t m b -> t m b -> t m b) -> (a -> t m b) -> f a -> t m b
174~~ aheadly :: IsStream t => AheadT m a -> t m a
175++ fromAhead :: IsStream t => AheadT m a -> t m a
176~~ asyncly :: IsStream t => AsyncT m a -> t m a
177++ fromAsync :: IsStream t => AsyncT m a -> t m a
178~~ parallely :: IsStream t => ParallelT m a -> t m a
179++ fromParallel :: IsStream t => ParallelT m a -> t m a
180~~ serially :: IsStream t => SerialT m a -> t m a
181++ fromSerial :: IsStream t => SerialT m a -> t m a
182~~ wAsyncly :: IsStream t => WAsyncT m a -> t m a
183++ fromWAsync :: IsStream t => WAsyncT m a -> t m a
184~~ wSerially :: IsStream t => WSerialT m a -> t m a
185++ fromWSerial :: IsStream t => WSerialT m a -> t m a
186~~ zipAsyncly :: IsStream t => ZipAsyncM m a -> t m a
187++ fromZipAsync :: IsStream t => ZipAsyncM m a -> t m a
188~~ zipSerially :: IsStream t => ZipSerialM m a -> t m a
189++ fromZipSerial :: IsStream t => ZipSerialM m a -> t m a
190## unchanged
191++ class (forall m a. MonadAsync m => Semigroup (t m a), forall m a. MonadAsync m => Monoid (t m a), forall m. Monad m => Functor (t m), forall m. MonadAsync m => Applicative (t m)) => IsStream t
192++ data AheadT m a
193++ data AsyncT m a
194++ data ParallelT m a
195++ data Rate Rate :: Double -> Double -> Double -> Int -> Rate
196++ data SerialT m a
197++ data WAsyncT m a
198++ data WSerialT m a
199++ data ZipAsyncM m a
200++ data ZipSerialM m a
201++ type Ahead = AheadT IO
202++ type Async = AsyncT IO
203++ type MonadAsync m = (MonadIO m, MonadBaseControl IO m, MonadThrow m)
204++ type Parallel = ParallelT IO
205++ type Serial = SerialT IO
206++ type WAsync = WAsyncT IO
207++ type WSerial = WSerialT IO
208++ type ZipAsync = ZipAsyncM IO
209++ type ZipSerial = ZipSerialM IO
210++ (|$) :: (IsStream t, MonadAsync m) => (t m a -> t m b) -> t m a -> t m b
211++ (|$.) :: (IsStream t, MonadAsync m) => (t m a -> m b) -> t m a -> m b
212++ (|&) :: (IsStream t, MonadAsync m) => t m a -> (t m a -> t m b) -> t m b
213++ (|&.) :: (IsStream t, MonadAsync m) => t m a -> (t m a -> m b) -> m b
214++ [rateBuffer] :: Rate -> Int
215++ [rateGoal] :: Rate -> Double
216++ [rateHigh] :: Rate -> Double
217++ [rateLow] :: Rate -> Double
218++ adapt :: (IsStream t1, IsStream t2) => t1 m a -> t2 m a
219++ ahead :: (IsStream t, MonadAsync m) => t m a -> t m a -> t m a
220++ async :: (IsStream t, MonadAsync m) => t m a -> t m a -> t m a
221++ avgRate :: IsStream t => Double -> t m a -> t m a
222++ constRate :: IsStream t => Double -> t m a -> t m a
223++ maxBuffer :: IsStream t => Int -> t m a -> t m a
224++ maxRate :: IsStream t => Double -> t m a -> t m a
225++ maxThreads :: IsStream t => Int -> t m a -> t m a
226++ minRate :: IsStream t => Double -> t m a -> t m a
227++ mkAsync :: (IsStream t, MonadAsync m) => t m a -> t m a
228++ parallel :: (IsStream t, MonadAsync m) => t m a -> t m a -> t m a
229++ rate :: IsStream t => Maybe Rate -> t m a -> t m a
230++ serial :: IsStream t => t m a -> t m a -> t m a
231++ wAsync :: (IsStream t, MonadAsync m) => t m a -> t m a -> t m a
232++ wSerial :: IsStream t => t m a -> t m a -> t m a
234# Added
235++ delay :: (IsStream t, MonadIO m) => Double -> t m a -> t m a
236++ foldMany :: (IsStream t, Monad m) => Fold m a b -> t m a -> t m b
237++ intercalate :: (IsStream t, Monad m) => Unfold m b c -> b -> t m b -> t m c
238++ intercalateSuffix :: (IsStream t, Monad m) => Unfold m b c -> b -> t m b -> t m c
239++ liftInner :: (Monad m, IsStream t, MonadTrans tr, Monad (tr m)) => t m a -> t (tr m) a
240++ runReaderT :: (IsStream t, Monad m) => m s -> t (ReaderT s m) a -> t m a
241++ runStateT :: Monad m => m s -> SerialT (StateT s m) a -> SerialT m (s, a)
243# Removed: documentation moved to streamly-docs module in docs dir
244@@@ Streamly.Tutorial
246# Deprecated, renamed
247~~~ Streamly.Data.Unicode.Stream
248@@@ Streamly.Unicode.Stream
249# Moved from Streamly.Data.Unicode.Stream
250## Behavior changed
251++ decodeUtf8 :: (Monad m, IsStream t) => t m Word8 -> t m Char
252++ encodeLatin1 :: (IsStream t, Monad m) => t m Char -> t m Word8
253++ encodeUtf8 :: (Monad m, IsStream t) => t m Char -> t m Word8
254## Unchanged
255++ decodeLatin1 :: (IsStream t, Monad m) => t m Word8 -> t m Char
257# Added
258++ decodeUtf8' :: (Monad m, IsStream t) => t m Word8 -> t m Char
259++ encodeLatin1' :: (IsStream t, Monad m) => t m Char -> t m Word8
260++ encodeStrings :: (MonadIO m, IsStream t) => (SerialT m Char -> SerialT m Word8) -> t m String -> t m (Array Word8)
261++ encodeUtf8' :: (Monad m, IsStream t) => t m Char -> t m Word8