First I'll review a little background, then I'll ask my questions.
Background
The EventF
type looks like this:
data EventF a b
= Event { context :: Context,
whole :: Maybe a,
part :: a,
value :: b}
-- Defined at src/Sound/Tidal/Pattern.hs:619:1
That's a little more abstract than we need for this discussion. Most of the EventF
s we work with are Event
s:
type Event a = EventF (ArcF Time) a
-- Defined at src/Sound/Tidal/Pattern.hs:627:1
And an ArcF Time
is just a pair of Time
s representing an interval. Thus every Event
carries at least two and maybe four Time
values: WHen the part
starts and stops, and maybe when the whole
starts and stops. Since the whole
is optional, I'm guessing the part
is what determines the duration of the Event
.
My questions
Am I correct that the part
is what determiens the duration of the Event
?
What is the meaning of the whole
?
Why, when, and how should I use whole
s?
Why can whole
be missing sometimes?
When do otherwise-identical Event
s with differrent whole
s behave differently?