music-suite / music-score

This repo has been merged into: https://github.com/music-suite/music-suite
http://music-suite.github.io
BSD 3-Clause "New" or "Revised" License
52 stars 10 forks source link

music-score must depend on the aspect libraries #326

Closed hanshoglund closed 9 years ago

hanshoglund commented 9 years ago

We have been avoiding this for long, but it seems to grow unavoidable.

The main reason is functions like upDiatonic or ucat, which can simply not be define without knowledge of both aspect-specific types such as Pitch, and the access type classes in Music.Score.

ucat :: (Monoid a, HasParts' a, Music.Score.Part a ~ Part) => [a] -> a
upDiatonic :: (HasPitches' t, Music.Score.Pitch t ~ Pitch) => Pitch -> DiatonicSteps -> t -> t
-- or using the new names
ucat :: (Monoid a, HasParts' a, PartOf a ~ Part) => [a] -> a
upDiatonic :: (HasPitches' t, PitchOf t ~ Pitch) => Pitch -> DiatonicSteps -> t -> t
hanshoglund commented 9 years ago

Done, closing.