name:                 io-streams
version:              1.5.2.2
visibility:           public
id:                   io-streams-1.5.2.2-3DuJKjlrxs1LITYRK6f5AN
key:                  io-streams-1.5.2.2-3DuJKjlrxs1LITYRK6f5AN
license:              BSD-3-Clause
maintainer:           Gregory Collins <greg@gregorycollins.net>
synopsis:             Simple, composable, and easy-to-use stream I/O
description:
    /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, folds, maps, filters, zips, etc.

    * support for parsing from streams using @attoparsec@.

    * support for spawning processes and communicating with them using streams.

category:             Data, Network, IO-Streams
abi:                  535189d742e024181ca141585f74458e
exposed:              True
exposed-modules:
    System.IO.Streams System.IO.Streams.Attoparsec
    System.IO.Streams.Attoparsec.ByteString
    System.IO.Streams.Attoparsec.Text System.IO.Streams.Builder
    System.IO.Streams.ByteString System.IO.Streams.Combinators
    System.IO.Streams.Concurrent System.IO.Streams.Core
    System.IO.Streams.Debug System.IO.Streams.File
    System.IO.Streams.Handle System.IO.Streams.Internal
    System.IO.Streams.List System.IO.Streams.Network
    System.IO.Streams.Process System.IO.Streams.Text
    System.IO.Streams.Tutorial System.IO.Streams.Vector
    System.IO.Streams.Zlib

hidden-modules:
    System.IO.Streams.Internal.Attoparsec
    System.IO.Streams.Internal.Search
    System.IO.Streams.Internal.Network

import-dirs:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/io-streams-1.5.2.2-3DuJKjlrxs1LITYRK6f5AN

library-dirs:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/io-streams-1.5.2.2-3DuJKjlrxs1LITYRK6f5AN

library-dirs-static:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/io-streams-1.5.2.2-3DuJKjlrxs1LITYRK6f5AN

dynamic-library-dirs: /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1
data-dir:             /usr/pkg/share/aarch64-netbsd-ghc-9.10.1/io-streams-1.5.2.2
hs-libraries:         HSio-streams-1.5.2.2-3DuJKjlrxs1LITYRK6f5AN
depends:
    attoparsec-0.14.4-K9NSfl6Vabt1mhGYpcAGFx base-4.20.0.0-inplace
    bytestring-0.12.1.0-inplace network-3.2.7.0-1Ct3oTmBj2N7AMqmYP2CgU
    primitive-0.9.0.0-E3mDWyaMF4OIki7z5jah63 process-1.6.19.0-inplace
    text-2.1.1-inplace time-1.12.2-inplace transformers-0.6.1.1-inplace
    vector-0.13.2.0-IQjxDWDvdFJE3A4jpN00x9
    zlib-bindings-0.1.1.5-9bpjgESjWtF8AxTWtNSoob

haddock-interfaces:
    /usr/pkg/share/doc/aarch64-netbsd-ghc-9.10.1/io-streams-1.5.2.2/html/io-streams.haddock

haddock-html:
    /usr/pkg/share/doc/aarch64-netbsd-ghc-9.10.1/io-streams-1.5.2.2/html
