    -----------------------------------------------------------------------------
    -- |
    -- Module      : Data.Array.Parallel.Unlifted.Sequential.Segmented
    -- Copyright   : (c) [2001..2002] Manuel M T Chakravarty & Gabriele Keller
    --		 (c) 2006         Manuel M T Chakravarty & Roman Leshchinskiy
    -- License     : see libraries/ndp/LICENSE
    --
    -- Maintainer  : Roman Leshchinskiy <rl@cse.unsw.edu.au>
    -- Stability   : internal
    -- Portability : portable
    --
    -- Description ---------------------------------------------------------------
    --
    -- Interface to operations on segmented unlifted arrays.
    --
    -- Todo ----------------------------------------------------------------------
    --

    module Data.Array.Parallel.Unlifted.Sequential.Segmented (

      -- * Array types
      SUArr,

      -- * Streaming
      streamSU, unstreamSU,

      -- * Segmentation
      concatSU, flattenSU, (>:), segmentU, segmentArrU, segdSU,

      -- * Basic operations
      lengthSU, singletonSU, replicateSU, sliceIndexSU, extractIndexSU, (+:+^),
      replicateCU, (!:^),
      indexedSU, (^+:+^),

      -- * Basic operations lifted
      lengthsSU, indicesSU,

      -- * Subarrays
      sliceSU, extractSU, takeCU, dropCU,

      -- * Zipping
      fstSU, sndSU, zipSU,

      -- * Permutations
      bpermuteSU, bpermuteSU',

      -- * Higher-order operations
      mapSU, zipWithSU,
      {-concatMapU,-}
      foldlSU, foldSU,
      fold1SU,
      {-scanSU, scan1SU,-}

      -- filter and combines
      filterSU, packCU,

      combineSU, combineCU,
      -- * Logical operations
      andSU, orSU,

      -- * Arithmetic operations
      sumSU, productSU, maximumSU, minimumSU,

      -- * Enumerations
      enumFromToSU, enumFromThenToSU,

      -- * Conversions to\/from lists
      toSU, fromSU,

      -- * Segment descriptors
      USegd, MUSegd,

      -- * Operations on segment descriptors
      lengthUSegd, lengthsUSegd, indicesUSegd,
      lengthsToUSegd, toUSegd, fromUSegd
    ) where

    import Data.Array.Parallel.Unlifted.Sequential.Segmented.SUArr
    import Data.Array.Parallel.Unlifted.Sequential.Segmented.Stream
    import Data.Array.Parallel.Unlifted.Sequential.Segmented.Basics
    import Data.Array.Parallel.Unlifted.Sequential.Segmented.Subarrays
    import Data.Array.Parallel.Unlifted.Sequential.Segmented.Combinators
    import Data.Array.Parallel.Unlifted.Sequential.Segmented.Sums
    import Data.Array.Parallel.Unlifted.Sequential.Segmented.Permute
    import Data.Array.Parallel.Unlifted.Sequential.Segmented.Text ()