alga-0.2.2: Algorithmic automation for various DAWs

Safe HaskellSafe
LanguageHaskell2010

Alga.Language.Element

Synopsis

Documentation

type Principle = [Element NRatio] Source #

Collection of elements for evaluation, representation of some aspect of voice.

type NRatio = Ratio Natural Source #

Non-negative rational number is the best choice for our purposes, hence the synonym.

data Element a Source #

Fundamental type representing an atom for evaluation.

Constructors

Val a

Single value, evaluates to itself

Sec [Element a]

Universal container for other values

Mul [Element a]

Multivalue, the way to introduce varying elements

CMul (NonEmpty ([Element a], [Element a]))

Conditional multivalue

Instances

Functor Element Source # 

Methods

fmap :: (a -> b) -> Element a -> Element b #

(<$) :: a -> Element b -> Element a #

Applicative Element Source # 

Methods

pure :: a -> Element a #

(<*>) :: Element (a -> b) -> Element a -> Element b #

(*>) :: Element a -> Element b -> Element b #

(<*) :: Element a -> Element b -> Element a #

Foldable Element Source # 

Methods

fold :: Monoid m => Element m -> m #

foldMap :: Monoid m => (a -> m) -> Element a -> m #

foldr :: (a -> b -> b) -> b -> Element a -> b #

foldr' :: (a -> b -> b) -> b -> Element a -> b #

foldl :: (b -> a -> b) -> b -> Element a -> b #

foldl' :: (b -> a -> b) -> b -> Element a -> b #

foldr1 :: (a -> a -> a) -> Element a -> a #

foldl1 :: (a -> a -> a) -> Element a -> a #

toList :: Element a -> [a] #

null :: Element a -> Bool #

length :: Element a -> Int #

elem :: Eq a => a -> Element a -> Bool #

maximum :: Ord a => Element a -> a #

minimum :: Ord a => Element a -> a #

sum :: Num a => Element a -> a #

product :: Num a => Element a -> a #

Eq a => Eq (Element a) Source # 

Methods

(==) :: Element a -> Element a -> Bool #

(/=) :: Element a -> Element a -> Bool #

Show a => Show (Element a) Source # 

Methods

showsPrec :: Int -> Element a -> ShowS #

show :: Element a -> String #

showList :: [Element a] -> ShowS #