




Description 
ToDo:
Better name for the module is certainly
Synthesizer.Generator.Signal


Synopsis 

data T a = forall s . Cons !(StateT s Maybe a) !s   generate :: (acc > Maybe (y, acc)) > acc > T y   unfoldR :: (acc > Maybe (y, acc)) > acc > T y   generateInfinite :: (acc > (y, acc)) > acc > T y   fromList :: [y] > T y   toList :: T y > [y]   fromStorableSignal :: Storable a => T a > T a   toStorableSignal :: Storable a => ChunkSize > T a > T a   toStrictStorableSignal :: Storable a => Int > T a > Vector a   toStorableSignalVary :: Storable a => LazySize > T a > T a   iterate :: (a > a) > a > T a   iterateAssociative :: (a > a > a) > a > T a   repeat :: a > T a   crochetL :: (x > acc > Maybe (y, acc)) > acc > T x > T y   scanL :: (acc > x > acc) > acc > T x > T acc   scanLClip :: (acc > x > acc) > acc > T x > T acc   map :: (a > b) > T a > T b   unzip :: T (a, b) > (T a, T b)   unzip3 :: T (a, b, c) > (T a, T b, T c)   delay1 :: a > T a > T a   delay :: y > Int > T y > T y   take :: Int > T a > T a   takeWhile :: (a > Bool) > T a > T a   replicate :: Int > a > T a   zipWith :: (a > b > c) > T a > T b > T c   zipWithStorable :: (Storable b, Storable c) => (a > b > c) > T a > T b > T c   zipWith3 :: (a > b > c > d) > T a > T b > T c > T d   zipWith4 :: (a > b > c > d > e) > T a > T b > T c > T d > T e   zip :: T a > T b > T (a, b)   zip3 :: T a > T b > T c > T (a, b, c)   zip4 :: T a > T b > T c > T d > T (a, b, c, d)   foldL' :: (x > acc > acc) > acc > T x > acc   foldL :: (acc > x > acc) > acc > T x > acc   length :: T a > Int   foldR :: (x > acc > acc) > acc > T x > acc   null :: T a > Bool   empty :: T a   singleton :: a > T a   cons :: a > T a > T a   viewL :: T a > Maybe (a, T a)   viewR :: Storable a => T a > Maybe (T a, a)   viewRSize :: Storable a => ChunkSize > T a > Maybe (T a, a)   switchL :: b > (a > T a > b) > T a > b   switchR :: Storable a => b > (T a > a > b) > T a > b   extendConstant :: T a > T a   drop :: Int > T a > T a   dropMarginRem :: Int > Int > T a > (Int, T a)   dropMargin :: Int > Int > T a > T a   dropMatch :: T b > T a > T a   index :: Int > T a > a   splitAt :: Storable a => Int > T a > (T a, T a)   splitAtSize :: Storable a => ChunkSize > Int > T a > (T a, T a)   dropWhile :: (a > Bool) > T a > T a   span :: Storable a => (a > Bool) > T a > (T a, T a)   spanSize :: Storable a => ChunkSize > (a > Bool) > T a > (T a, T a)   cycle :: T a > T a   mix :: C a => T a > T a > T a   sub :: C a => T a > T a > T a   neg :: C a => T a > T a   append :: T a > T a > T a   appendStored :: Storable a => T a > T a > T a   appendStoredSize :: Storable a => ChunkSize > T a > T a > T a   concat :: [T a] > T a   concatStored :: Storable a => [T a] > T a   concatStoredSize :: Storable a => ChunkSize > [T a] > T a   reverse :: T a > T a   reverseStored :: Storable a => T a > T a   reverseStoredSize :: Storable a => ChunkSize > T a > T a   sum :: C a => T a > a   maximum :: Ord a => T a > a   init :: T y > T y   sliceVert :: Int > T y > [T y]   zapWith :: (a > a > b) > T a > T b   zapWithAlt :: (a > a > b) > T a > T b   mapAdjacent :: (a > a > b) > T a > T b   modifyStatic :: Simple s ctrl a b > ctrl > T a > T b   modifyModulated :: Simple s ctrl a b > T ctrl > T a > T b   linearComb :: C t y => T t > T y > y   mapTails :: (T y0 > y1) > T y0 > T y1   zipWithTails :: (y0 > T y1 > y2) > T y0 > T y1 > T y2   zipWithAppend :: (y > y > y) > T y > T y > T y   zipStep :: (a > a > a) > (T a, T a) > Maybe (a, (T a, T a))   delayLoop :: (T y > T y) > T y > T y   delayLoopOverlap :: C y => Int > (T y > T y) > T y > T y   sequence_ :: Monad m => T (m a) > m ()   mapM_ :: Monad m => (a > m ()) > T a > m ()   monoidConcat :: Monoid m => T m > m   monoidConcatMap :: Monoid m => (a > m) > T a > m 


Documentation 


Cf. StreamFusion Data.Stream
 Constructors   Instances  






generateInfinite :: (acc > (y, acc)) > acc > T y  Source 














iterate :: (a > a) > a > T a  Source 


iterateAssociative :: (a > a > a) > a > T a  Source 




crochetL :: (x > acc > Maybe (y, acc)) > acc > T x > T y  Source 


scanL :: (acc > x > acc) > acc > T x > T acc  Source 


scanLClip :: (acc > x > acc) > acc > T x > T acc  Source 

input and output have equal length, that's better for fusion





This function will recompute the input lists
and is thus probably not what you want.
If you want to avoid recomputation please consider Causal.Process.





This is a fusion friendly implementation of delay.
However, in order to be a crochetL
the output has the same length as the input,
that is, the last element is removed  at least for finite input.










functions consuming multiple lists


zipWith :: (a > b > c) > T a > T b > T c  Source 




zipWith3 :: (a > b > c > d) > T a > T b > T c > T d  Source 


zipWith4 :: (a > b > c > d > e) > T a > T b > T c > T d > T e  Source 






zip4 :: T a > T b > T c > T d > T (a, b, c, d)  Source 


functions based on foldL


foldL' :: (x > acc > acc) > acc > T x > acc  Source 


foldL :: (acc > x > acc) > acc > T x > acc  Source 




functions based on foldR


foldR :: (x > acc > acc) > acc > T x > acc  Source 


Other functions









This is expensive and should not be used to construct lists iteratively!








switchL :: b > (a > T a > b) > T a > b  Source 





This implementation requires
that the input generator has to check repeatedly whether it is finished.





This implementation expects that looking ahead is cheap.

































certainly inefficient because of frequent list deconstruction




















zapWith :: (a > a > b) > T a > T b  Source 


zapWithAlt :: (a > a > b) > T a > T b  Source 


mapAdjacent :: (a > a > b) > T a > T b  Source 





Here the control may vary over the time.




mapTails :: (T y0 > y1) > T y0 > T y1  Source 


zipWithTails :: (y0 > T y1 > y2) > T y0 > T y1 > T y2  Source 


zipWithAppend :: (y > y > y) > T y > T y > T y  Source 





::   => T y > T y  processor that shall be run in a feedback loop
 > T y  prefix of the output, its length determines the delay
 > T y  



:: C y   => Int   > T y > T y  processor that shall be run in a feedback loop
 > T y  input
 > T y  output has the same length as the input








Counterpart to Data.Monoid.mconcat.




Produced by Haddock version 2.4.2 