Portability | non-portable (TF,GNTD) |
---|---|

Stability | experimental |

Maintainer | hans@hanshoglund.se |

Safe Haskell | None |

- lead :: (HasPosition a, HasPosition b, Transformable a) => a -> b -> a
- follow :: (HasPosition a, HasPosition b, Transformable b) => a -> b -> b
- after :: (Semigroup a, Transformable a, HasPosition a) => a -> a -> a
- before :: (Semigroup a, Transformable a, HasPosition a) => a -> a -> a
- during :: (HasPosition a, HasPosition b, Transformable a, Transformable b) => a -> b -> a
- (|>) :: (Semigroup a, HasPosition a, Transformable a) => a -> a -> a
- (<|) :: (Semigroup a, HasPosition a, Transformable a) => a -> a -> a
- sustain :: (Semigroup a, HasPosition a, Transformable a) => a -> a -> a
- palindrome :: (Semigroup a, Reversible a, HasPosition a) => a -> a
- scat :: (Semigroup a, Monoid a, HasPosition a, Transformable a) => [a] -> a
- pcat :: (Semigroup a, Monoid a) => [a] -> a
- times :: (Semigroup a, Monoid a, HasPosition a, Transformable a) => Int -> a -> a

# Align without composition

lead :: (HasPosition a, HasPosition b, Transformable a) => a -> b -> aSource

follow :: (HasPosition a, HasPosition b, Transformable b) => a -> b -> bSource

# Standard composition

after :: (Semigroup a, Transformable a, HasPosition a) => a -> a -> aSource

Move a value so that

before :: (Semigroup a, Transformable a, HasPosition a) => a -> a -> aSource

Move a value so that

during :: (HasPosition a, HasPosition b, Transformable a, Transformable b) => a -> b -> aSource

Move a value so that its era is equal to the era of another value.

`Score`

a ->`Score`

a ->`Score`

a

(|>) :: (Semigroup a, HasPosition a, Transformable a) => a -> a -> aSource

An infix alias for `after`

.

(<|) :: (Semigroup a, HasPosition a, Transformable a) => a -> a -> aSource

An infix alias for `before`

.

## More exotic

sustain :: (Semigroup a, HasPosition a, Transformable a) => a -> a -> aSource

Like `<>`

, but scaling the second agument to the duration of the first.

`Score`

a ->`Score`

a ->`Score`

a

palindrome :: (Semigroup a, Reversible a, HasPosition a) => a -> aSource

A value followed by its reverse (retrograde).

# Catenation

scat :: (Semigroup a, Monoid a, HasPosition a, Transformable a) => [a] -> aSource

Compose a list of sequential objects, with onset and offset tangent to one another.

For non-positioned types, this is the often same as `mconcat`

For positioned types, this is the same as `afterAnother`

pcat :: (Semigroup a, Monoid a) => [a] -> aSource

Compose a list of parallel objects, so that their local origins align.

This not possible for non-positioned types, as they have no notion of an origin.
For positioned types this is the same as `mconcat`

.

# Repetition

times :: (Semigroup a, Monoid a, HasPosition a, Transformable a) => Int -> a -> aSource

Repeat exact amount of times.

`Int`

->`Score`

a ->`Score`

a