SUSE Package Hub 15 one-click install Install ghc-io-streams NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-Standard-Pool Package Hub 15 Dummy repo - this will fail ghc-io-streams Simple, composable, and easy-to-use stream I/O /Overview/ The io-streams library contains simple and easy-to-use primitives for I/O using streams. Most users will want to import the top-level convenience module "System.IO.Streams", which re-exports most of the library: ' import System.IO.Streams (InputStream, OutputStream) import qualified System.IO.Streams as Streams ' For first-time users, 'io-streams' comes with an included tutorial, which can be found in the "System.IO.Streams.Tutorial" module. /Features/ The 'io-streams' user API has two basic types: 'InputStream a' and 'OutputStream a', and three fundamental I/O primitives: ' -- read an item from an input stream Streams.read :: InputStream a -> IO (Maybe a) -- push an item back to an input stream Streams.unRead :: a -> InputStream a -> IO () -- write to an output stream Streams.write :: Maybe a -> OutputStream a -> IO () ' Streams can be transformed by composition and hooked together with provided combinators: ' ghci> Streams.fromList [1,2,3::Int] >>= Streams.map (*10) >>= Streams.toList [10,20,30] ' Stream composition leaves the original stream accessible: ' ghci> input <- Streams.fromByteString "long string" ghci> wrapped <- Streams.takeBytes 4 input ghci> Streams.read wrapped Just "long" ghci> Streams.read wrapped Nothing ghci> Streams.read input Just " string" ' Simple types and operations in the IO monad mean straightforward and simple exception handling and resource cleanup using Haskell standard library facilities like 'Control.Exception.bracket'. 'io-streams' comes with: * functions to use files, handles, concurrent channels, sockets, lists, vectors, and more as streams. * a variety of combinators for wrapping and transforming streams, including compression and decompression using zlib, controlling precisely how many bytes are read from or written to a stream, buffering output using bytestring builders, folds, maps, filters, zips, etc. * support for parsing from streams using 'attoparsec'. * support for spawning processes and communicating with them using streams. SUSE Package Hub 15 one-click install Install ghc-io-streams NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-Standard-Pool Package Hub 15 Dummy repo - this will fail ghc-io-streams Simple, composable, and easy-to-use stream I/O /Overview/ The io-streams library contains simple and easy-to-use primitives for I/O using streams. Most users will want to import the top-level convenience module "System.IO.Streams", which re-exports most of the library: ' import System.IO.Streams (InputStream, OutputStream) import qualified System.IO.Streams as Streams ' For first-time users, 'io-streams' comes with an included tutorial, which can be found in the "System.IO.Streams.Tutorial" module. /Features/ The 'io-streams' user API has two basic types: 'InputStream a' and 'OutputStream a', and three fundamental I/O primitives: ' -- read an item from an input stream Streams.read :: InputStream a -> IO (Maybe a) -- push an item back to an input stream Streams.unRead :: a -> InputStream a -> IO () -- write to an output stream Streams.write :: Maybe a -> OutputStream a -> IO () ' Streams can be transformed by composition and hooked together with provided combinators: ' ghci> Streams.fromList [1,2,3::Int] >>= Streams.map (*10) >>= Streams.toList [10,20,30] ' Stream composition leaves the original stream accessible: ' ghci> input <- Streams.fromByteString "long string" ghci> wrapped <- Streams.takeBytes 4 input ghci> Streams.read wrapped Just "long" ghci> Streams.read wrapped Nothing ghci> Streams.read input Just " string" ' Simple types and operations in the IO monad mean straightforward and simple exception handling and resource cleanup using Haskell standard library facilities like 'Control.Exception.bracket'. 'io-streams' comes with: * functions to use files, handles, concurrent channels, sockets, lists, vectors, and more as streams. * a variety of combinators for wrapping and transforming streams, including compression and decompression using zlib, controlling precisely how many bytes are read from or written to a stream, buffering output using bytestring builders, folds, maps, filters, zips, etc. * support for parsing from streams using 'attoparsec'. * support for spawning processes and communicating with them using streams. SUSE Package Hub 15 SP4 one-click install Install ghc-io-streams NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-SP4-Backports-Pool Package Hub 15 SP4 Dummy repo - this will fail ghc-io-streams Simple, composable, and easy-to-use stream I/O /Overview/ The io-streams library contains simple and easy-to-use primitives for I/O using streams. Most users will want to import the top-level convenience module "System.IO.Streams", which re-exports most of the library: ' import System.IO.Streams (InputStream, OutputStream) import qualified System.IO.Streams as Streams ' For first-time users, 'io-streams' comes with an included tutorial, which can be found in the "System.IO.Streams.Tutorial" module. /Features/ The 'io-streams' user API has two basic types: 'InputStream a' and 'OutputStream a', and three fundamental I/O primitives: ' -- read an item from an input stream Streams.read :: InputStream a -> IO (Maybe a) -- push an item back to an input stream Streams.unRead :: a -> InputStream a -> IO () -- write to an output stream Streams.write :: Maybe a -> OutputStream a -> IO () ' Streams can be transformed by composition and hooked together with provided combinators: ' ghci> Streams.fromList [1,2,3::Int] >>= Streams.map (*10) >>= Streams.toList [10,20,30] ' Stream composition leaves the original stream accessible: ' ghci> input <- Streams.fromByteString "long string" ghci> wrapped <- Streams.takeBytes 4 input ghci> Streams.read wrapped Just "long" ghci> Streams.read wrapped Nothing ghci> Streams.read input Just " string" ' Simple types and operations in the IO monad mean straightforward and simple exception handling and resource cleanup using Haskell standard library facilities like 'Control.Exception.bracket'. 'io-streams' comes with: * functions to use files, handles, concurrent channels, sockets, lists, vectors, and more as streams. * a variety of combinators for wrapping and transforming streams, including compression and decompression using zlib, controlling precisely how many bytes are read from or written to a stream, buffering output using bytestring builders, folds, maps, filters, zips, etc. * support for parsing from streams using 'attoparsec'. * support for spawning processes and communicating with them using streams. SUSE Package Hub 15 SP4 one-click install Install ghc-io-streams NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-SP4-Backports-Pool Package Hub 15 SP4 Dummy repo - this will fail ghc-io-streams Simple, composable, and easy-to-use stream I/O /Overview/ The io-streams library contains simple and easy-to-use primitives for I/O using streams. Most users will want to import the top-level convenience module "System.IO.Streams", which re-exports most of the library: ' import System.IO.Streams (InputStream, OutputStream) import qualified System.IO.Streams as Streams ' For first-time users, 'io-streams' comes with an included tutorial, which can be found in the "System.IO.Streams.Tutorial" module. /Features/ The 'io-streams' user API has two basic types: 'InputStream a' and 'OutputStream a', and three fundamental I/O primitives: ' -- read an item from an input stream Streams.read :: InputStream a -> IO (Maybe a) -- push an item back to an input stream Streams.unRead :: a -> InputStream a -> IO () -- write to an output stream Streams.write :: Maybe a -> OutputStream a -> IO () ' Streams can be transformed by composition and hooked together with provided combinators: ' ghci> Streams.fromList [1,2,3::Int] >>= Streams.map (*10) >>= Streams.toList [10,20,30] ' Stream composition leaves the original stream accessible: ' ghci> input <- Streams.fromByteString "long string" ghci> wrapped <- Streams.takeBytes 4 input ghci> Streams.read wrapped Just "long" ghci> Streams.read wrapped Nothing ghci> Streams.read input Just " string" ' Simple types and operations in the IO monad mean straightforward and simple exception handling and resource cleanup using Haskell standard library facilities like 'Control.Exception.bracket'. 'io-streams' comes with: * functions to use files, handles, concurrent channels, sockets, lists, vectors, and more as streams. * a variety of combinators for wrapping and transforming streams, including compression and decompression using zlib, controlling precisely how many bytes are read from or written to a stream, buffering output using bytestring builders, folds, maps, filters, zips, etc. * support for parsing from streams using 'attoparsec'. * support for spawning processes and communicating with them using streams. SUSE Package Hub 15 SP5 one-click install Install ghc-io-streams NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-SP5-Standard-Pool Package Hub 15 SP5 Dummy repo - this will fail ghc-io-streams Simple, composable, and easy-to-use stream I/O /Overview/ The io-streams library contains simple and easy-to-use primitives for I/O using streams. Most users will want to import the top-level convenience module "System.IO.Streams", which re-exports most of the library: ' import System.IO.Streams (InputStream, OutputStream) import qualified System.IO.Streams as Streams ' For first-time users, 'io-streams' comes with an included tutorial, which can be found in the "System.IO.Streams.Tutorial" module. /Features/ The 'io-streams' user API has two basic types: 'InputStream a' and 'OutputStream a', and three fundamental I/O primitives: ' -- read an item from an input stream Streams.read :: InputStream a -> IO (Maybe a) -- push an item back to an input stream Streams.unRead :: a -> InputStream a -> IO () -- write to an output stream Streams.write :: Maybe a -> OutputStream a -> IO () ' Streams can be transformed by composition and hooked together with provided combinators: ' ghci> Streams.fromList [1,2,3::Int] >>= Streams.map (*10) >>= Streams.toList [10,20,30] ' Stream composition leaves the original stream accessible: ' ghci> input <- Streams.fromByteString "long string" ghci> wrapped <- Streams.takeBytes 4 input ghci> Streams.read wrapped Just "long" ghci> Streams.read wrapped Nothing ghci> Streams.read input Just " string" ' Simple types and operations in the IO monad mean straightforward and simple exception handling and resource cleanup using Haskell standard library facilities like 'Control.Exception.bracket'. 'io-streams' comes with: * functions to use files, handles, concurrent channels, sockets, lists, vectors, and more as streams. * a variety of combinators for wrapping and transforming streams, including compression and decompression using zlib, controlling precisely how many bytes are read from or written to a stream, buffering output using bytestring builders, folds, maps, filters, zips, etc. * support for parsing from streams using 'attoparsec'. * support for spawning processes and communicating with them using streams. SUSE Package Hub 15 SP5 one-click install Install ghc-io-streams NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-SP5-Standard-Pool Package Hub 15 SP5 Dummy repo - this will fail ghc-io-streams Simple, composable, and easy-to-use stream I/O /Overview/ The io-streams library contains simple and easy-to-use primitives for I/O using streams. Most users will want to import the top-level convenience module "System.IO.Streams", which re-exports most of the library: ' import System.IO.Streams (InputStream, OutputStream) import qualified System.IO.Streams as Streams ' For first-time users, 'io-streams' comes with an included tutorial, which can be found in the "System.IO.Streams.Tutorial" module. /Features/ The 'io-streams' user API has two basic types: 'InputStream a' and 'OutputStream a', and three fundamental I/O primitives: ' -- read an item from an input stream Streams.read :: InputStream a -> IO (Maybe a) -- push an item back to an input stream Streams.unRead :: a -> InputStream a -> IO () -- write to an output stream Streams.write :: Maybe a -> OutputStream a -> IO () ' Streams can be transformed by composition and hooked together with provided combinators: ' ghci> Streams.fromList [1,2,3::Int] >>= Streams.map (*10) >>= Streams.toList [10,20,30] ' Stream composition leaves the original stream accessible: ' ghci> input <- Streams.fromByteString "long string" ghci> wrapped <- Streams.takeBytes 4 input ghci> Streams.read wrapped Just "long" ghci> Streams.read wrapped Nothing ghci> Streams.read input Just " string" ' Simple types and operations in the IO monad mean straightforward and simple exception handling and resource cleanup using Haskell standard library facilities like 'Control.Exception.bracket'. 'io-streams' comes with: * functions to use files, handles, concurrent channels, sockets, lists, vectors, and more as streams. * a variety of combinators for wrapping and transforming streams, including compression and decompression using zlib, controlling precisely how many bytes are read from or written to a stream, buffering output using bytestring builders, folds, maps, filters, zips, etc. * support for parsing from streams using 'attoparsec'. * support for spawning processes and communicating with them using streams.