hsc3-0.14: Haskell SuperCollider

Safe HaskellSafe-Inferred

Sound.SC3.Monad.Syntax

Description

Functions to make writing Applicative and Monad UGen graphs less clumsy.

Synopsis

Documentation

(.+) :: (Functor f, Num a) => f a -> a -> f aSource

+ variant with Functor at left.

 fmap (== 5) (return 3 .+ 2)

(+.) :: (Functor f, Num a) => a -> f a -> f aSource

+ variant with Functor at right.

 fmap (== 5) (3 +. return 2)

(.+.) :: (Applicative m, Num a) => m a -> m a -> m aSource

+ variant with Applicative at left and right.

 fmap (== 5) (return 3 .+. return 2)

(.*) :: (Functor f, Num a) => f a -> a -> f aSource

* variant with Functor at left.

 fmap (== 6) (return 3 .* 2)

(*.) :: (Functor f, Num a) => a -> f a -> f aSource

* variant with Functor at right.

 fmap (== 6) (3 *. return 2)

(.*.) :: (Applicative m, Num a) => m a -> m a -> m aSource

* variant with Applicative at left and right.

 fmap (== 6) (return 3 .*. return 2)

composeM :: Monad m => [a -> m a] -> a -> m aSource

Right to left compositon of Monad functions.

 fmap (== 7) (composeM [return . (+ 1),return . (* 2)] 3)
 fmap (== 8) (composeM [return . (* 2),return . (+ 1)] 3)

chainM :: Monad m => Int -> (b -> m b) -> b -> m bSource

Feed forward composition of n applications of f.

 fmap (== 3) (chainM 3 (return . (+ 1)) 0)