Copyright  (c) Hans Hoglund 20122014 

License  BSDstyle 
Maintainer  hans@hanshoglund.se 
Stability  experimental 
Portability  nonportable (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) 