You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 29, 2020. It is now read-only.
(Below, TF means type family and CT means concrete type.)
How should the increasing number of TFs in music-score be named?
There are no standard convention, for example vector-space uses Diff, Scalar etc, while diagrams uses V.
The long names read nice, but often conflict with a concrete type name. For example we often have Music.Score.Pitch a ~ Music.Pitch.Pitch, or even Music.Time.DurationT (Score a) ~ Music.Time.Duration.
Possible solutions
Short TF, long CT
P a ~ Pitch
Does not scale well, imagine if we split out pitch, time, articulation etc. Then we would end up with P a, T a, R a etc.
Long suffixed TF, long CT
PitchOf a ~ Pitch, TimeOf (Score a) ~ Time, ArticulationOf a ~ Western.Articulation
Both TF and CT long (use qualifiers)
Pitch a ~ Pitch.Pitch
Slightly confusing (but will work with good documentation, export lists etc)
Does not work for Time and Duration (both TF and CT have to live in Music.Time)
We could circumvent this by restricting Transformable to the CTs and remove the TFs for the time-based functionality. Is the simplicity gained worth the loss of scores with different time representations?
The text was updated successfully, but these errors were encountered:
We settle for Both TF and CT. Qualified imports in preludes are OK. Note that the CT should be visible by default. We solve the Time/Duration collision by simplifying and using only the CTs (this approach was used in the thesis).
(Below, TF means type family and CT means concrete type.)
How should the increasing number of TFs in music-score be named?
There are no standard convention, for example vector-space uses
Diff
,Scalar
etc, while diagrams usesV
.The long names read nice, but often conflict with a concrete type name. For example we often have
Music.Score.Pitch a ~ Music.Pitch.Pitch
, or evenMusic.Time.DurationT (Score a) ~ Music.Time.Duration
.Possible solutions
Short TF, long CT
P a ~ Pitch
P a, T a, R a
etc.Long suffixed TF, long CT
PitchOf a ~ Pitch, TimeOf (Score a) ~ Time, ArticulationOf a ~ Western.Articulation
Both TF and CT long (use qualifiers)
Pitch a ~ Pitch.Pitch
Time
andDuration
(both TF and CT have to live inMusic.Time
)Transformable
to the CTs and remove the TFs for the time-based functionality. Is the simplicity gained worth the loss of scores with different time representations?The text was updated successfully, but these errors were encountered: