| Copyright | (c) Hans Hoglund 2012-2014 |
|---|---|
| License | BSD-style |
| Maintainer | hans@hanshoglund.se |
| Stability | experimental |
| Portability | non-portable (TF,GNTD) |
| Safe Haskell | None |
| Language | Haskell2010 |
Music.Time.Bound
Contents
Description
Bound type
Bound restricts the start and stop time of a value, and prevents access to values
outside the bounds.
Bound is especially useful to restrict the range of a Behavior. If we have a
value with can only be reasonably defined for a particular time range, we can
represent it as Bound Behavior. This is isomorphic to a Note Segment, and
bounded whitnesses the isomorphism.
Bound is not Foldable or Traversable, as that would allow us to access values
outside the bounds. However, we can still access values of a Bound Behavior in a
safe manner using trim or splice.
Instances
| Functor Bound | |
| Eq a => Eq (Bound a) | |
| Show a => Show (Bound a) | |
| Semigroup a => Semigroup (Bound a) | |
| Wrapped (Bound a) | |
| Transformable a => Transformable (Bound a) |
|
| (HasPosition a, HasDuration a, Transformable a) => HasDuration (Bound a) | |
| (HasPosition a, Transformable a) => HasPosition (Bound a) | |
| Reversible a => Reversible (Bound a) | |
| Rewrapped (Bound a) (Bound b) | |
| Typeable (* -> *) Bound | |
| type Unwrapped (Bound a) = (Span, a) |