synthesizer-core-0.2.1: Audio signal processing coded in Haskell: Low level partSource codeContentsIndex
Synthesizer.ApplicativeUtility
Synopsis
liftA4 :: Applicative f => (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e
liftA5 :: Applicative f => (a -> b -> c -> d -> e -> g) -> f a -> f b -> f c -> f d -> f e -> f g
liftA6 :: Applicative f => (a -> b -> c -> d -> e -> g -> h) -> f a -> f b -> f c -> f d -> f e -> f g -> f h
loop :: Functor f => f (a -> a) -> f a
($:) :: Applicative f => f (a -> b) -> f a -> f b
($::) :: (Applicative f, Traversable t) => f (t a -> b) -> t (f a) -> f b
(.:) :: Applicative f => f (b -> c) -> f (a -> b) -> f (a -> c)
($^) :: Functor f => (a -> b) -> f a -> f b
(.^) :: Functor f => (b -> c) -> f (a -> b) -> f (a -> c)
($#) :: Functor f => f (a -> b) -> a -> f b
liftP :: Applicative f => f (a -> b) -> f a -> f b
liftP2 :: Applicative f => f (a -> b -> c) -> f a -> f b -> f c
liftP3 :: Applicative f => f (a -> b -> c -> d) -> f a -> f b -> f c -> f d
liftP4 :: Applicative f => f (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e
Documentation
liftA4 :: Applicative f => (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f eSource
liftA5 :: Applicative f => (a -> b -> c -> d -> e -> g) -> f a -> f b -> f c -> f d -> f e -> f gSource
liftA6 :: Applicative f => (a -> b -> c -> d -> e -> g -> h) -> f a -> f b -> f c -> f d -> f e -> f g -> f hSource
loopSource
:: Functor f
=> f (a -> a)process chain that shall be looped
-> f a
Create a loop (feedback) from one node to another one. That is, compute the fix point of a process iteration.
($:) :: Applicative f => f (a -> b) -> f a -> f bSource
This corresponds to <*>
($::) :: (Applicative f, Traversable t) => f (t a -> b) -> t (f a) -> f bSource
Instead of mixMulti $:: map f xs the caller should write mixMulti $: mapM f xs in order to save the user from learning another infix operator.
(.:) :: Applicative f => f (b -> c) -> f (a -> b) -> f (a -> c)Source
($^) :: Functor f => (a -> b) -> f a -> f bSource
(.^) :: Functor f => (b -> c) -> f (a -> b) -> f (a -> c)Source
($#) :: Functor f => f (a -> b) -> a -> f bSource
liftP :: Applicative f => f (a -> b) -> f a -> f bSource
Our signal processors have types like f (a -> b -> c). They could also have the type a -> b -> f c or f a -> f b -> f c. We did not choose the last variant for reduction of redundancy in type signatures, and we did not choose the second variant for easy composition of processors. However the forms are freely convertible, and if you prefer the last one because you do not want to sprinkle '($:)' in your code, then you may want to convert the processors using the following functions, that can be defined purely in the Applicative class.
liftP2 :: Applicative f => f (a -> b -> c) -> f a -> f b -> f cSource
liftP3 :: Applicative f => f (a -> b -> c -> d) -> f a -> f b -> f c -> f dSource
liftP4 :: Applicative f => f (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f eSource
Produced by Haddock version 2.4.2