repa-array-4.0.0.1: Data/Repa/Eval/Stream.hs
{-# LANGUAGE CPP #-}
-- | Interface with stream fusion.
module Data.Repa.Eval.Stream
(streamOfArray)
where
import Data.Repa.Array.Index as A
import Data.Repa.Array.Internals.Bulk as A
import qualified Data.Vector.Fusion.Stream.Monadic as S
#include "repa-array.h"
-- | Produce a `Stream` for the elements of the given array.
streamOfArray
:: (Monad m, Bulk l a, Index l ~ Int)
=> A.Array l a
-> S.Stream m a
streamOfArray vec
= S.generate (A.length vec)
(\i -> A.index vec i)
{-# INLINE_STREAM streamOfArray #-}