packages feed

streamly-core-0.1.0: src/Streamly/Internal/Data/Stream/StreamDK.hs

-- |
-- Module      : Streamly.Internal.Data.Stream.StreamDK
-- Copyright   : (c) 2019 Composewell Technologies
-- License     : BSD-3-Clause
-- Maintainer  : streamly@composewell.com
-- Stability   : experimental
-- Portability : GHC
--
--
-- This module has the following problems due to rewrite rules:
--
-- * Rewrite rules lead to optimization problems, blocking fusion in some
-- cases, specifically when combining multiple operations e.g. (filter . drop).
-- * Rewrite rules lead to problems when calling a function recursively. For
-- example, the StreamD version of foldBreak cannot be used recursively when
-- wrapped in rewrite rules because each recursive call adds a roundtrip
-- conversion from D to K and back to D. We can use the StreamK versions of
-- these though because the rewrite rule gets eliminated in that case.
-- * If we have a unified module, we need two different versions of several
-- operations e.g. appendK and appendD, both are useful in different cases.
--
module Streamly.Internal.Data.Stream.StreamDK
    ( module Streamly.Internal.Data.Stream.Type
    , module Streamly.Internal.Data.Stream.Bottom
    , module Streamly.Internal.Data.Stream.Eliminate
    , module Streamly.Internal.Data.Stream.Exception
    , module Streamly.Internal.Data.Stream.Expand
    , module Streamly.Internal.Data.Stream.Generate
    , module Streamly.Internal.Data.Stream.Lift
    , module Streamly.Internal.Data.Stream.Reduce
    , module Streamly.Internal.Data.Stream.Transform
    , module Streamly.Internal.Data.Stream.Cross
    , module Streamly.Internal.Data.Stream.Zip

    -- modules having dependencies on libraries other than base
    , module Streamly.Internal.Data.Stream.Transformer
    )
where

import Streamly.Internal.Data.Stream.Bottom
import Streamly.Internal.Data.Stream.Cross
import Streamly.Internal.Data.Stream.Eliminate
import Streamly.Internal.Data.Stream.Exception
import Streamly.Internal.Data.Stream.Expand
import Streamly.Internal.Data.Stream.Generate
import Streamly.Internal.Data.Stream.Lift
import Streamly.Internal.Data.Stream.Reduce
import Streamly.Internal.Data.Stream.Transform
import Streamly.Internal.Data.Stream.Type
import Streamly.Internal.Data.Stream.Zip

import Streamly.Internal.Data.Stream.Transformer