haskore-0.2.0.8: The Haskore Computer Music System

Safe HaskellSafe
LanguageHaskell2010

Medium.LabeledControlled.List

Synopsis

Documentation

data T label control content Source

Medium type with a label (e.g. the duration of the represented music), a controller constructor and direct support for rests.

Constructors

Cons 

Fields

label :: label
 
structure :: Structure label control content
 

Instances

Functor (T i control) Source 
Foldable (T i control) Source 
Traversable (T i control) Source 
Label label => Construct (T label control) Source 
(Eq label, Eq control, Eq content) => Eq (T label control content) Source 
(Ord label, Ord control, Ord content) => Ord (T label control content) Source 
(Show label, Show control, Show content) => Show (T label control content) Source 

data Structure label control content Source

Constructors

Primitive content

primitive content

Serial [T label control content]

sequential composition

Parallel [T label control content]

parallel composition

Control control (T label control content)

controller

Instances

(Eq label, Eq control, Eq content) => Eq (Structure label control content) Source 
(Ord label, Ord control, Ord content) => Ord (Structure label control content) Source 
(Show label, Show control, Show content) => Show (Structure label control content) Source 

class Label label where Source

Methods

emptyLabel :: label Source

foldLabelSerial :: [label] -> label Source

foldLabelParallel :: [label] -> label Source

serialLabel :: Label label => [T label control content] -> T label control content Source

parallelLabel :: Label label => [T label control content] -> T label control content Source

switchList :: (label -> b -> c) -> (a -> b) -> ([T label control a] -> b) -> ([T label control a] -> b) -> (control -> T label control a -> b) -> T label control a -> c Source

foldList :: (label -> b -> c) -> (a -> b) -> ([c] -> b) -> ([c] -> b) -> (control -> c -> b) -> T label control a -> c Source

fromControlledMediumList :: Label label => (a -> (label, b)) -> (control -> T label control b -> label) -> T control a -> T label control b Source

mapLabel :: (i -> j) -> T i control a -> T j control a Source

serialToList :: T label control a -> [T label control a] Source

parallelToList :: T label control a -> [T label control a] Source