diff --git a/examples/chords.hs b/examples/chords.hs
--- a/examples/chords.hs
+++ b/examples/chords.hs
@@ -49,7 +49,7 @@
     dropLast n = reverse . drop n . reverse
 
 
-counterRh = set parts' rh $ (mcatMaybes $ times 4 $ octavesUp 1 $ scat [rest^*2,g,g,g^*2,g^*2, rest^*2, scat [g,g,g]^*2])^/8
+counterRh = set parts' rh $ (removeRests $ times 4 $ octavesUp 1 $ scat [rest^*2,g,g,g^*2,g^*2, rest^*2, scat [g,g,g]^*2])^/8
 
 strings = set parts' (tutti violin) $ octavesAbove 1 $ 
      (c_<>e_<>g_)^*4 
diff --git a/examples/imitations.hs b/examples/imitations.hs
--- a/examples/imitations.hs
+++ b/examples/imitations.hs
@@ -2,8 +2,9 @@
 {-# LANGUAGE NoMonomorphismRestriction #-}
 
 module Main where
-import Music.Score.Util (rotated)
-import Music.Prelude.Standard
+import Music.Time.Internal.Util (rotate)
+import Music.Prelude
+import qualified Data.Ratio
 
 -- Get (bar,beat)
 -- 400 bars in 60 BPM
@@ -19,7 +20,7 @@
 
 main = {-openMusicXml-}open noteScore
 
-noteScore :: Score Note
+noteScore :: Score StandardNote
 noteScore = compress 4 $ {-addInstrChange $-}
       mempty
 
@@ -76,88 +77,90 @@
 
 --------------------------------------------------------------------------------
 
-colLegno1 :: Score Note
+colLegno1 :: Score StandardNote
 colLegno1 = {-staccato $ -} level (ppp {-`cresc` mp |> mp^*0.2-}) $ text "col legno battuto"  $
-        (down 12 $ delay 0 $ repTimes 7 $ mcatMaybes $ ([4,4,4,5,4] `groupWith` g) |> rest^*6)
-    </> (down 12 $ delay 1 $ repTimes 7 $ mcatMaybes $ ([4,4,5,4,5] `groupWith` g) |> rest^*6)
-    </> (down 24 $ delay 3 $ repTimes 7 $ mcatMaybes $ ([4,5,4,5,4] `groupWith` g) |> rest^*6)
-    </> (down 24 $ delay 6 $ repTimes 7 $ mcatMaybes $ ([3,3,5,3,5] `groupWith` g) |> rest^*6)
+        (down _P8  $ delay 0 $ repTimes 7 $ removeRests $ ([4,4,4,5,4] `groupWith` g) |> rest^*6)
+    </> (down _P8  $ delay 1 $ repTimes 7 $ removeRests $ ([4,4,5,4,5] `groupWith` g) |> rest^*6)
+    </> (down _P15 $ delay 3 $ repTimes 7 $ removeRests $ ([4,5,4,5,4] `groupWith` g) |> rest^*6)
+    </> (down _P15 $ delay 6 $ repTimes 7 $ removeRests $ ([3,3,5,3,5] `groupWith` g) |> rest^*6)
 
 -- dur 45
 
-colLegno2 :: Score Note
+colLegno2 :: Score StandardNote
 colLegno2 = {-staccato $ -} level (mp) $ text "col legno battuto"  $
-        (down 12 $ delay 0 $ repTimes 4 $ mcatMaybes $ [4,4,5,4,5,4]  `groupWith` g |> rest^*6)
-    </> (down 12 $ delay 1 $ repTimes 4 $ mcatMaybes $ [4,4,5,4,5,4]  `groupWith` g |> rest^*6)
-    </> (down 12 $ delay 3 $ repTimes 4 $ mcatMaybes $ [4,5,4,5,4,4]  `groupWith` g |> rest^*6)
-    </> (down 12 $ delay 6 $ repTimes 4 $ mcatMaybes $ [3,3,5,3,3]    `groupWith` g |> rest^*6)
+        (down _P8 $ delay 0 $ repTimes 4 $ removeRests $ [4,4,5,4,5,4]  `groupWith` g |> rest^*6)
+    </> (down _P8 $ delay 1 $ repTimes 4 $ removeRests $ [4,4,5,4,5,4]  `groupWith` g |> rest^*6)
+    </> (down _P8 $ delay 3 $ repTimes 4 $ removeRests $ [4,5,4,5,4,4]  `groupWith` g |> rest^*6)
+    </> (down _P8 $ delay 6 $ repTimes 4 $ removeRests $ [3,3,5,3,3]    `groupWith` g |> rest^*6)
 -- 
-colLegno2Alt :: Score Note
+colLegno2Alt :: Score StandardNote
 colLegno2Alt = {-staccato $ -} level (mp) $ text "col legno battuto"  $
-        (down 12 $ delay 0 $ mcatMaybes $ repWithIndex 4 $ \t -> [4,4,5,4,5,4]  `groupWith` g |> rest^*(1+4*t))
-    </> (down 12 $ delay 1 $ mcatMaybes $ repWithIndex 4 $ \t -> [4,4,5,4,5,4]  `groupWith` g |> rest^*(1+4*t))
-    </> (down 24 $ delay 3 $ mcatMaybes $ repWithIndex 4 $ \t -> [4,5,4,5,4,4]  `groupWith` g |> rest^*(1+4*t))
-    </> (down 24 $ delay 6 $ mcatMaybes $ repWithIndex 4 $ \t -> [3,3,5,3,3]    `groupWith` g |> rest^*(1+4*t))
+        (down _P8 $ delay 0 $ removeRests $ repWithIndex 4 $ \t -> [4,4,5,4,5,4]  `groupWith` g |> rest^*(1+4*t))
+    </> (down _P8 $ delay 1 $ removeRests $ repWithIndex 4 $ \t -> [4,4,5,4,5,4]  `groupWith` g |> rest^*(1+4*t))
+    </> (down _P15 $ delay 3 $ removeRests $ repWithIndex 4 $ \t -> [4,5,4,5,4,4]  `groupWith` g |> rest^*(1+4*t))
+    </> (down _P15 $ delay 6 $ removeRests $ repWithIndex 4 $ \t -> [3,3,5,3,3]    `groupWith` g |> rest^*(1+4*t))
 
 -- --------------------------------------------------------------------------------
 -- 
-makeJete :: Behavior Pitch -> Bool -> Duration -> Score Note
-makeJete p v d = text "jeté" $ pitches' %~ (+ p) $ mcatMaybes $ g_ |> ((if v then cs else cs_){-^/2-}) {-|> rest^/2-} |> rest^*d
+makeJete :: Behavior Interval -> Bool -> Duration -> Score (Maybe StandardNote)
+makeJete p v d = {-text "jeté" $-} pitches' %~ (.+^ p) $ removeRests $ g_ |> ((if v then cs else cs_){-^/2-}) {-|> rest^/2-} |> rest^*d
 
-makeJetes :: [Behavior Pitch] -> [Bool] -> [Duration] -> Score Note
+makeJetes :: [Behavior Interval] -> [Bool] -> [Duration] -> Score (Maybe StandardNote)
 makeJetes ps vs ds = scat $ zipWith3 makeJete ps vs ds
 
-jete1 :: Score Note
-jete1 = id $ -- FIXME temporary fix w.r.t onset/padToBar
-        (delay 3  $ up 0    $ makeJetes (rotated 0 ps) (rotated 3 vs) (rotated 1 ds))
-    </> (delay 5  $ up 0    $ makeJetes (rotated 1 ps) (rotated 0 vs) (rotated 3 ds))^*(4/5)
-    </> (delay 7  $ down 12 $ makeJetes (rotated 2 ps) (rotated 1 vs) (rotated 2 ds))
-    </> (delay 12 $ down 12 $ makeJetes (rotated 3 ps) (rotated 2 vs) (rotated 0 ds))^*(4/5)
+jete1 :: Score StandardNote
+jete1 = removeRests $ -- FIXME temporary fix w.r.t onset/padToBar
+        (delay 3  $ up _P1   $ makeJetes (rotate 0 ps) (rotate 3 vs) (rotate 1 ds))
+    </> (delay 5  $ up _P1   $ makeJetes (rotate 1 ps) (rotate 0 vs) (rotate 3 ds))^*(4/5)
+    </> (delay 7  $ down _P8 $ makeJetes (rotate 2 ps) (rotate 1 vs) (rotate 2 ds))
+    </> (delay 12 $ down _P8 $ makeJetes (rotate 3 ps) (rotate 2 vs) (rotate 0 ds))^*(4/5)
     where
-        ps = take n $ cycle [0,6,6,0,6,6,0]
+        ps = take n $ cycle [_P1,d5,d5,_P1,d5,d5,_P1]
         vs = take n $ cycle [True,False,True,False,True,False,True,False]
         ds = take n $ cycle $ fmap (+ 4) [3,7,5,7,5,5,3,7,7,7,7,7,5,3,7,7,7,7,7,3,3,5]
         n  = 9
 -- 
--- -- colLegno3 :: Score Note
--- -- colLegno3 = (down 12 $ delay 0 $ rep $ [4,4,5,4,5,4]  `groupWith` g |> rest^*6)
+-- -- colLegno3 :: Score StandardNote
+-- -- colLegno3 = (down _P8 $ delay 0 $ rep $ [4,4,5,4,5,4]  `groupWith` g |> rest^*6)
 -- 
 -- 
 -- --------------------------------------------------------------------------------
 -- 
-makeCanon_I :: Rational -> Dynamic Note -> Score Note -> Score Note -> Score Note
+makeCanon_I :: Rational -> Dynamic StandardNote -> Score StandardNote -> Score StandardNote -> Score StandardNote
 makeCanon_I n dn subj1 subj2 =
-        level dn (rev (a </> b </> c </> d) |> (a </> b </> c </> d))
+        level dn (empty |> (a </> b </> c </> d))
     where
         a = (repTimes (floor $ 5*n/(4/3)) $ subj1 ^*(4/3))
         b = (repTimes (floor $ 5*n/1)     $ subj2 ^*1)
         c = (repTimes (floor $ 5*n/2)     $ subj1 ^*2)
         d = (repTimes (floor $ 5*n/3)     $ subj2 ^*3)
 -- 
-canon_I :: Score Note
+canon_I :: Score StandardNote
 canon_I = text "ord" $ (^*2) $ makeCanon_I 1 {-dn-}mf subj1 subj2
     where
         subj1 = g_ |> a_^*(3/2) |> g_^*2
         subj2 = f_^*3 |> bb_^*1 |> a_ |> g_^*3
         -- dn   = (repTimes 5 $ (pp `cresc` mf)^*3 |> (mf `dim` pp)^*3 )
--- 
--- makeCanon_II :: Score (Levels Double) -> Score Note -> Score Note -> Score Note
--- makeCanon_II dn subj1 subj2 =
---         level dn (rev $ a </> b </> c </> d)
---     where
---         a = (repWithTime 5 $ \t -> {-up (round $ octave * t) $ -}subj1 ^*(4/3))
---         b = (repWithTime 5 $ \t -> {-up (round $ octave * t) $ -}subj2 ^*1)
---         c = (repWithTime 2 $ \t -> {-up (round $ octave * t) $ -}subj1 ^*2)
---         d = (repWithTime 2 $ \t -> {-up (round $ octave * t) $ -}subj2 ^*3)
--- 
--- canon_II :: Score Note
--- canon_II = text "ord" $ (^*2) $ makeCanon_II dn subj1 subj2
---     where
---         subj1 = g_ |> d^*(3/2) |> c^/2 |> a_^/2 |> bb_^/2
---         subj2 = f_^*3 |> bb_^*1 |> a_ |> d_^*3
---         dn   = (repTimes 5 $ (pp `cresc` mf)^*3 |> (mf `dim` pp)^*3 )
+
+makeCanon_II :: Dynamic StandardNote -> Score StandardNote -> Score StandardNote -> Score StandardNote
+makeCanon_II dn subj1 subj2 =
+        level dn (rev $ a </> b </> c </> d)
+    where
+        a = (repWithTime 5 $ \t -> {-up (round $ octave * t) $ -}subj1 ^*(4/3))
+        b = (repWithTime 5 $ \t -> {-up (round $ octave * t) $ -}subj2 ^*1)
+        c = (repWithTime 2 $ \t -> {-up (round $ octave * t) $ -}subj1 ^*2)
+        d = (repWithTime 2 $ \t -> {-up (round $ octave * t) $ -}subj2 ^*3)
+
+repWithTime n f = scat $ fmap f [1..n]
+
+canon_II :: Score StandardNote
+canon_II = text "ord" $ (^*2) $ makeCanon_II {-dn-}mf subj1 subj2
+    where
+        subj1 = g_ |> d^*(3/2) |> c^/2 |> a_^/2 |> bb_^/2
+        subj2 = f_^*3 |> bb_^*1 |> a_ |> d_^*3
+        -- dn   = (repTimes 5 $ (pp `cresc` mf)^*3 |> (mf `dim` pp)^*3 )
 -- 
--- makeCanon_III :: Double -> Score (Levels Double) -> Score Note -> Score Note -> Score Note
+-- makeCanon_III :: Double -> Score (Levels Double) -> Score StandardNote -> Score StandardNote -> Score StandardNote
 -- makeCanon_III n dn subj1 subj2 =
 --         level dn (rev (a </> b </> c </> d) |> (a </> b </> c </> d))
 --     where
@@ -166,53 +169,55 @@
 --         c = (repTimes (5*n/2)     $ subj1 ^*2)
 --         d = (repTimes (5*n/3)     $ subj2 ^*3)
 -- 
--- canon_III :: Score Note
+-- canon_III :: Score StandardNote
 -- canon_III = text "ord" $ makeCanon_III 1.6 dn subj1 subj2
 --     where
 --         subj1 = g^*2 |> d |> eb^*(3/2) |> c^*2 |> d^*2
 --         subj2 = f_^*3 |> bb_^*1 |> a_ |> g_^*2 |> d^*3 |> c^*1
 --         dn   = (repTimes 5 $ (mf `cresc` _f)^*3 |> (_f `dim` mf)^*3 )
 -- 
--- makeCanon_IV :: Bool -> Score Note -> Score Note -> Score Note -> Score Note
--- makeCanon_IV flip subj1 subj2 bass = if flip then lower </> upper else upper </> lower
---     where
---         upper = (repWithTime (10/(4/5)) $ \t -> reg Vl1 t   $ subj1 ^* (4/5) )
---             </> (repWithTime (12/(2/3)) $ \t -> reg Vla1 t  $ subj1 ^* (2/3) )
---             </> (repWithTime (15/ 1   ) $ \t -> reg Vc1 t   $ subj1 ^* 1     )
---             </> (repWithTime (18/ 2   ) $ \t -> reg Db2 t   $ bass ^* 1    )
--- 
---         lower = (repWithTime (10/(2/3)) $ \t -> reg Vl2 t   $ subj2 ^* (2/3) )
---             </> (repWithTime (12/ 1   ) $ \t -> reg Vla2 t  $ subj2 ^* 1     )
---             </> (repWithTime (15/(3/2)) $ \t -> reg Vc2 t   $ subj2 ^* (3/2) )
---             </> (repWithTime (18/ 2   ) $ \t -> reg Db2 t   $ bass ^* 1    )
--- 
---         reg Vl1  t | t < 0.3 = up   (octave + fifth) | t < 0.6 = up octave       | t >= 0.6 = up fifth
---         reg Vl2  t | t < 0.4 = up   octave           | t < 0.7 = up fifth        | t >= 0.7 = up fifth
---         reg Vla1 t | t < 0.4 = up   fifth            | t < 0.7 = up fifth        | t >= 0.7 = up unison
---         reg Vla2 t | t < 0.4 = up   unison           | t < 0.7 = up fifth        | t >= 0.7 = up unison
---         reg Vc1  t | t < 0.4 = down octave           | t < 0.7 = down octave     | t >= 0.7 = down fourth
---         reg Vc2  t | t < 0.4 = down octave           | t < 0.7 = down octave     | t >= 0.7 = down fourth
--- 
---         reg Db1  t | t < 0.4 = down (octave*1)       | t < 0.7 = down (octave*1) | t >= 0.7 = down (octave*1)
---         reg Db2  t | t < 0.4 = down (octave*2)       | t < 0.7 = down (octave*1) | t >= 0.7 = down (octave*1)
--- 
--- 
--- canon_IV :: Score Note
--- canon_IV = text "ord" $ c^*padC |> firstC |> secondC
---     where
---         firstC  = level dn1 $ rev $ makeCanon_IV False subj1 subj2 bass
---         secondC = level dn2       $ makeCanon_IV True subj1 subj2 bass
---         padC    = fromIntegral $ 4 - numerator (getDuration $ duration firstC) `mod` 4
---         dn1     = (repTimes 10 $ (mf `cresc` _f)^*5 |> (_f `dim` mf)^*5)
---         dn2     = (repTimes 10 $ (_f `cresc` ff)^*5 |> (ff `dim` _f)^*5)
--- 
---         subj1 = down 2 $ (d^*3 |> a |> g^*2 |> c' |> b |> c' |> b |> g |> a^*3)
---         subj2 = down 2 $ (d^*2 |> a |> g^*2 |> c' |> b |> c' |> b |> g |> a^*3)
---         bass  = melody [d,a] |> g^*2 |> melody [c,d,a] |> g^*2
---         -- bass  = melody [d,g] |> a^*2 |> melody [c,g,d] |> a^*2
+makeCanon_IV :: Bool -> Score StandardNote -> Score StandardNote -> Score StandardNote -> Score StandardNote
+makeCanon_IV flip subj1 subj2 bass = if flip then lower </> upper else upper </> lower
+    where
+        upper = (repWithTime (10/(4/5)) $ \t -> reg "Vl1" t   $ subj1 ^* (4/5) )
+            </> (repWithTime (12/(2/3)) $ \t -> reg "Vla1" t  $ subj1 ^* (2/3) )
+            </> (repWithTime (15/ 1   ) $ \t -> reg "Vc1" t   $ subj1 ^* 1     )
+            </> (repWithTime (18/ 2   ) $ \t -> reg "Db2" t   $ bass ^* 1    )
 
+        lower = (repWithTime (10/(2/3)) $ \t -> reg "Vl2" t   $ subj2 ^* (2/3) )
+            </> (repWithTime (12/ 1   ) $ \t -> reg "Vla2" t  $ subj2 ^* 1     )
+            </> (repWithTime (15/(3/2)) $ \t -> reg "Vc2" t   $ subj2 ^* (3/2) )
+            </> (repWithTime (18/ 2   ) $ \t -> reg "Db2" t   $ bass ^* 1    )
 
+        reg "Vl1"  t | t < 0.3 = up   (_P8 + _P5) | t < 0.6 = up _P8       | t >= 0.6 = up _P5
+        reg "Vl2"  t | t < 0.4 = up   _P8           | t < 0.7 = up _P5        | t >= 0.7 = up _P5
+        reg "Vla1" t | t < 0.4 = up   _P5            | t < 0.7 = up _P5        | t >= 0.7 = up _P1
+        reg "Vla2" t | t < 0.4 = up   _P1           | t < 0.7 = up _P5        | t >= 0.7 = up _P1
+        reg "Vc1"  t | t < 0.4 = down _P8           | t < 0.7 = down _P8     | t >= 0.7 = down _P4
+        reg "Vc2"  t | t < 0.4 = down _P8           | t < 0.7 = down _P8     | t >= 0.7 = down _P4
 
+        reg "Db1"  t | t < 0.4 = down (_P8^*1)       | t < 0.7 = down (_P8^*1) | t >= 0.7 = down (_P8^*1)
+        reg "Db2"  t | t < 0.4 = down (_P8^*2)       | t < 0.7 = down (_P8^*1) | t >= 0.7 = down (_P8^*1)
+
+
+canon_IV :: Score StandardNote
+canon_IV = text "ord" $ {-c^*padC |> firstC |>-} secondC
+    where
+        firstC  = {-level dn1 $-} rev $ makeCanon_IV False subj1 subj2 bass
+        secondC = {-level dn2 $-}       makeCanon_IV True subj1 subj2 bass
+        padC    = fromIntegral $ 4 - Data.Ratio.numerator (realToFrac $ _duration firstC) `mod` 4
+        -- dn1     = (repTimes 10 $ (mf `cresc` _f)^*5 |> (_f `dim` mf)^*5)
+        -- dn2     = (repTimes 10 $ (_f `cresc` ff)^*5 |> (ff `dim` _f)^*5)
+
+        subj1 = down _M2 $ (d^*3 |> a |> g^*2 |> c' |> b |> c' |> b |> g |> a^*3)
+        subj2 = down _M2 $ (d^*2 |> a |> g^*2 |> c' |> b |> c' |> b |> g |> a^*3)
+        bass  = scat [d,a] |> g^*2 |> scat [c,d,a] |> g^*2
+        -- bass  = scat [d,g] |> a^*2 |> scat [c,g,d] |> a^*2
+
+
+instance Reversible (Score a) where
+  rev = stretchRelativeMidpoint (-1)
+
 cresc = const
 dim   = const
 repTimes = times
@@ -226,3 +231,24 @@
 moveToPart p x = parts' .~ p $ x
 
 [vl1, vl2] = divide 2 $ tutti violin
+
+
+_solo :: Lens' Part Solo
+_solo f (Part s i u) = fmap (\s -> Part s i u) $ f s
+
+_subpart :: Lens' Part Subpart
+_subpart f (Part s i u) = fmap (\u -> Part s i u) $ f u
+
+_instrument :: Lens' Part Instrument
+_instrument f (Part s i u) = fmap (\i -> Part s i u) $ f i
+
+-- Not perfect but works for many cases
+ucat xs = if allDistinct ps 
+    then mconcat xs 
+    else mconcat $ zipWith (set parts') (divide (length xs) p) xs
+  where
+    ps = concatMap (toListOf parts') xs
+    p  = foldr1 smallestPart ps
+
+
+
diff --git a/examples/part.hs b/examples/part.hs
--- a/examples/part.hs
+++ b/examples/part.hs
@@ -50,7 +50,7 @@
 bell = let
     cue :: Score (Maybe StandardNote)
     cue = stretchTo 1 (rest |> a) 
-    in parts' .~ solo tubularBells $ text "l.v." $ mcatMaybes $ times 40 $ scat [times 3 $ scat [cue,rest], rest^*2]
+    in parts' .~ solo tubularBells $ text "l.v." $ removeRests $ times 40 $ scat [times 3 $ scat [cue,rest], rest^*2]
 
 strings :: Score StandardNote
 strings = pcat [
diff --git a/examples/phrases.hs b/examples/phrases.hs
--- a/examples/phrases.hs
+++ b/examples/phrases.hs
@@ -10,7 +10,7 @@
 subj  = times 2 $ scat [c,c,d,b_,e,e]^/16
 
 -- Each voice differ slighly in onset etc
-voca v = delay ((4/8)^*v) $ mcatMaybes $ scat $ fmap (\i -> (id $ up (_M2^*i) subj) |> rest^*(15/8)) 
+voca v = delay ((4/8)^*v) $ removeRests $ scat $ fmap (\i -> (id $ up (_M2^*i) subj) |> rest^*(15/8)) 
   $ [0..3]
 
 -- The 
@@ -19,7 +19,7 @@
   $ composer "Anonymous"
   $ timeSignature (3/8) 
   $ timeSignatureDuring ((14*3/8) <-> 200) (4/8) 
-  $ over phrases (rotateValues 1)
+  $ over (phrases . valuesV) (rotate 1)
   -- $ over (phrases.middleV) (octavesAbove 1) 
   -- $ over phrases fuse 
   $ rcat 
@@ -27,3 +27,9 @@
   $ map voca [0..3]
 
 main  = open $ asScore $ music
+
+rotate :: Int -> [a] -> [a]
+rotate n xs = iterate rotate1 xs !! n
+  where
+    rotate1 [] = []
+    rotate1 xs = last xs : init xs
diff --git a/examples/voices.hs b/examples/voices.hs
new file mode 100644
--- /dev/null
+++ b/examples/voices.hs
@@ -0,0 +1,16 @@
+
+import Music.Prelude
+import qualified Music.Score
+
+subj :: Voice Pitch
+subj = mconcat [c',ab,db',e,f,g,ab,bb,c']
+
+type Chorale = [Voice (Maybe Pitch)]
+
+renderVoice :: Voice (Maybe Pitch) -> Score StandardNote
+renderVoice = fmap pitchToNote . removeRests . renderAlignedVoice . aligned 0 0
+  where
+    pitchToNote = fromPitch' . pure
+
+renderChorale :: Chorale -> Score StandardNote
+renderChorale = rcat . fmap renderVoice
diff --git a/music-preludes.cabal b/music-preludes.cabal
--- a/music-preludes.cabal
+++ b/music-preludes.cabal
@@ -1,6 +1,6 @@
 
 name:                   music-preludes
-version:                1.8
+version:                1.8.1
 author:                 Hans Hoglund
 maintainer:             Hans Hoglund
 license:                BSD3
@@ -26,7 +26,7 @@
 
 library
     build-depends:      base                    >= 4 && < 5,
-                        aeson                   >= 0.7.0.6 && < 1,
+                        -- aeson                   >= 0.7.0.6 && < 1,
                         lens                    >= 4.6 && < 4.7,
                         split,
                         containers,
@@ -38,17 +38,17 @@
                         optparse-applicative    >= 0.8  && < 1,
                         average                 >= 0.6  && < 1,
                         semigroups              >= 0.13.0.1 && < 1,
-                        data-default,
+                        -- data-default,
                         monadplus,
-                        lilypond                == 1.8,
-                        musicxml2               == 1.8,
-                        music-score             == 1.8,
-                        music-pitch             == 1.8,
-                        music-dynamics          == 1.8,
-                        music-articulation      == 1.8,
-                        music-parts             == 1.8,
-                        music-pitch-literal     == 1.8,
-                        music-dynamics-literal  == 1.8,
+                        lilypond                == 1.8.1,
+                        musicxml2               == 1.8.1,
+                        music-score             == 1.8.1,
+                        music-pitch             == 1.8.1,
+                        music-dynamics          == 1.8.1,
+                        music-articulation      == 1.8.1,
+                        music-parts             == 1.8.1,
+                        music-pitch-literal     == 1.8.1,
+                        music-dynamics-literal  == 1.8.1,
                         -- For examples:
                         async
     if !os(windows)
diff --git a/src/Music/Prelude/Basic.hs b/src/Music/Prelude/Basic.hs
--- a/src/Music/Prelude/Basic.hs
+++ b/src/Music/Prelude/Basic.hs
@@ -36,7 +36,6 @@
         openAndPlay
   ) where
 
-import           Data.Default
 import           Data.Typeable
 
 import           Music.Pitch             hiding (Fifths)
diff --git a/src/Music/Prelude/Instances.hs b/src/Music/Prelude/Instances.hs
--- a/src/Music/Prelude/Instances.hs
+++ b/src/Music/Prelude/Instances.hs
@@ -25,7 +25,6 @@
 module Music.Prelude.Instances () where
 
 import           Data.AffineSpace.Point
-import           Data.Default
 import           Data.Typeable
 
 import           Music.Dynamics
diff --git a/src/Music/Prelude/Standard.hs b/src/Music/Prelude/Standard.hs
--- a/src/Music/Prelude/Standard.hs
+++ b/src/Music/Prelude/Standard.hs
@@ -33,7 +33,6 @@
         openAndPlay
   ) where
 
-import           Data.Default
 import           Data.Typeable
 
 import           Music.Pitch
