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 |
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
.
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) => HasDuration (Bound a) | |
HasPosition a => HasPosition (Bound a) | |
(HasPosition a, Splittable a) => Splittable (Bound a) | |
Reversible a => Reversible (Bound a) | |
Rewrapped (Bound a) (Bound b) | |
Typeable (* -> *) Bound | |
type Unwrapped (Bound a) = (Span, a) |