Type class for several signal storage types
that allows alter element types.
There is some overlap between the two Transform
classes.
This was done in order to save us
from ubiquitous Transform sig y y
constraints.
- class (Transform sig y0, Transform sig y1) => Transform sig y0 y1 where
- zipWith :: (Read sig a, Transform sig b c) => (a -> b -> c) -> sig a -> sig b -> sig c
- mapAdjacent :: Transform sig a b => (a -> a -> b) -> sig a -> sig b
- zip :: (Read sig a, Transform sig b (a, b)) => sig a -> sig b -> sig (a, b)
- zipWith3 :: (Read sig a, Read sig b, Transform sig c d) => (a -> b -> c -> d) -> sig a -> sig b -> sig c -> sig d
- zip3 :: (Read sig a, Read sig b, Transform sig c (a, b, c)) => sig a -> sig b -> sig c -> sig (a, b, c)
- unzip :: (Transform sig (a, b) a, Transform sig (a, b) b) => sig (a, b) -> (sig a, sig b)
- unzip3 :: (Transform sig (a, b, c) a, Transform sig (a, b, c) b, Transform sig (a, b, c) c) => sig (a, b, c) -> (sig a, sig b, sig c)
- modifyStatic :: Transform sig a b => Simple s ctrl a b -> ctrl -> sig a -> sig b
- modifyModulated :: (Transform sig a b, Read sig ctrl) => Simple s ctrl a b -> sig ctrl -> sig a -> sig b
- linearComb :: (C t y, Read sig t, Transform sig y y) => sig t -> sig y -> y
- mapTails :: Transform sig a b => (sig a -> b) -> sig a -> sig b
- zipWithTails :: (Transform sig b, Transform sig a c) => (a -> sig b -> c) -> sig a -> sig b -> sig c
- zipWith2Tails :: (Transform sig b, Transform sig c, Transform sig a d) => (a -> sig b -> sig c -> d) -> sig a -> sig b -> sig c -> sig d
- zipWithState :: Transform sig b c => (a -> b -> c) -> T a -> sig b -> sig c
- zipWithState3 :: Transform sig c d => (a -> b -> c -> d) -> T a -> T b -> sig c -> sig d
Documentation
class (Transform sig y0, Transform sig y1) => Transform sig y0 y1 whereSource
mapAdjacent :: Transform sig a b => (a -> a -> b) -> sig a -> sig bSource
zipWith3 :: (Read sig a, Read sig b, Transform sig c d) => (a -> b -> c -> d) -> sig a -> sig b -> sig c -> sig dSource
zip3 :: (Read sig a, Read sig b, Transform sig c (a, b, c)) => sig a -> sig b -> sig c -> sig (a, b, c)Source
unzip3 :: (Transform sig (a, b, c) a, Transform sig (a, b, c) b, Transform sig (a, b, c) c) => sig (a, b, c) -> (sig a, sig b, sig c)Source
modifyStatic :: Transform sig a b => Simple s ctrl a b -> ctrl -> sig a -> sig bSource
modifyModulated :: (Transform sig a b, Read sig ctrl) => Simple s ctrl a b -> sig ctrl -> sig a -> sig bSource
Here the control may vary over the time.
linearComb :: (C t y, Read sig t, Transform sig y y) => sig t -> sig y -> ySource
zipWithTails :: (Transform sig b, Transform sig a c) => (a -> sig b -> c) -> sig a -> sig b -> sig cSource
zipWith2Tails :: (Transform sig b, Transform sig c, Transform sig a d) => (a -> sig b -> sig c -> d) -> sig a -> sig b -> sig c -> sig dSource
zipWithState :: Transform sig b c => (a -> b -> c) -> T a -> sig b -> sig cSource
zipWithState3 :: Transform sig c d => (a -> b -> c -> d) -> T a -> T b -> sig c -> sig dSource