diff --git a/haskore.cabal b/haskore.cabal
--- a/haskore.cabal
+++ b/haskore.cabal
@@ -1,5 +1,5 @@
 Name:           haskore
-Version:        0.1.0.4
+Version:        0.2
 License:        GPL
 License-File:   LICENSE
 Author:         Paul Hudak <paul.hudak@yale.edu>, Henning Thielemann
@@ -30,6 +30,7 @@
   src/Doc/Pics/poly.eps
   src/Test/CSound/Makefile
   src/Test/MIDI/Makefile
+  src/Haskore.lhs
 
 Source-Repository head
   type:     darcs
@@ -38,7 +39,7 @@
 Source-Repository this
   type:     darcs
   location: http://code.haskell.org/haskore/revised/core
-  tag:      0.1.1
+  tag:      0.2
 
 Flag splitBase
   description: Choose the new smaller, split-up base package.
@@ -49,10 +50,10 @@
 
 Library
   Build-Depends:
-    midi >=0.1.1 && <0.2,
-    event-list >=0.0.8 && <0.1,
     markov-chain >=0.0.1 && <0.1,
-    non-negative >=0.0.1 && <0.1,
+    midi >=0.1.1 && <0.2,
+    event-list >=0.1 && <0.2,
+    non-negative >=0.1 && <0.2,
     data-accessor >=0.2 && <0.3,
     utility-ht >=0.0.3 && <0.1,
     transformers >=0.0.1 && <0.3,
@@ -75,94 +76,93 @@
   GHC-Options:    -Wall
     -- with GHC-6.4.1 and option -O2 the compilation of NewResolution needs too much heap, thus swapping
 
-  Hs-source-dirs: src
-  Exposed-modules:
-    Haskore,
-    Haskore.Basic.Duration,
-    Haskore.Basic.Dynamics,
-    Haskore.Basic.Interval,
-    Haskore.Basic.Pitch,
-    Haskore.Basic.Scale,
-    Haskore.Basic.Tempo,
-    Haskore.Composition.Chord,
-    Haskore.Composition.ChordType,
-    Haskore.Composition.Drum,
-    Haskore.Composition.Rhythm,
-    Haskore.Composition.Trill,
-    Haskore.Example.BesondrerTag,
-    Haskore.Example.ChildSong6,
-    Haskore.Example.Detail,
-    Haskore.Example.Flip,
-    Haskore.Example.Fractal,
-    Haskore.Example.Guitar,
-    Haskore.Example.HeilandHimmel,
-    Haskore.Example.Kantate147,
-    Haskore.Example.Miscellaneous,
-    Haskore.Example.NewResolutions,
-    Haskore.Example.Raenzlein,
-    Haskore.Example.SelfSim,
-    Haskore.Example.Ssf,
-    Haskore.Example.WhiteChristmas,
-    Haskore.Interface.AutoTrack.ChartBar,
-    Haskore.Interface.AutoTrack.ChordChart,
-    Haskore.Interface.AutoTrack.ChordSymbol,
-    Haskore.Interface.AutoTrack.EventChart,
-    Haskore.Interface.AutoTrack.Instrument,
-    Haskore.Interface.AutoTrack.ScaleChart,
-    Haskore.Interface.AutoTrack.Style,
-    Haskore.Interface.AutoTrack.Transposeable,
-    Haskore.Interface.CSound,
-    Haskore.Interface.CSound.Generator,
-    Haskore.Interface.CSound.InstrumentMap,
-    Haskore.Interface.CSound.Note,
-    Haskore.Interface.CSound.Orchestra,
-    Haskore.Interface.CSound.OrchestraFunction,
-    Haskore.Interface.CSound.Score,
-    Haskore.Interface.CSound.SoundMap,
-    Haskore.Interface.CSound.Tutorial,
-    Haskore.Interface.CSound.TutorialCustom,
+  Hs-Source-Dirs: src
+  Exposed-Modules:
+    Haskore.Basic.Duration
+    Haskore.Basic.Dynamics
+    Haskore.Basic.Interval
+    Haskore.Basic.Pitch
+    Haskore.Basic.Scale
+    Haskore.Basic.Tempo
+    Haskore.Composition.Chord
+    Haskore.Composition.ChordType
+    Haskore.Composition.Drum
+    Haskore.Composition.Rhythm
+    Haskore.Composition.Trill
+    Haskore.Example.BesondrerTag
+    Haskore.Example.ChildSong6
+    Haskore.Example.Detail
+    Haskore.Example.Flip
+    Haskore.Example.Fractal
+    Haskore.Example.Guitar
+    Haskore.Example.HeilandHimmel
+    Haskore.Example.Kantate147
+    Haskore.Example.Miscellaneous
+    Haskore.Example.NewResolutions
+    Haskore.Example.Raenzlein
+    Haskore.Example.SelfSim
+    Haskore.Example.Ssf
+    Haskore.Example.WhiteChristmas
+    Haskore.Interface.AutoTrack.ChartBar
+    Haskore.Interface.AutoTrack.ChordChart
+    Haskore.Interface.AutoTrack.ChordSymbol
+    Haskore.Interface.AutoTrack.EventChart
+    Haskore.Interface.AutoTrack.Instrument
+    Haskore.Interface.AutoTrack.ScaleChart
+    Haskore.Interface.AutoTrack.Style
+    Haskore.Interface.AutoTrack.Transposeable
+    Haskore.Interface.CSound
+    Haskore.Interface.CSound.Generator
+    Haskore.Interface.CSound.InstrumentMap
+    Haskore.Interface.CSound.Note
+    Haskore.Interface.CSound.Orchestra
+    Haskore.Interface.CSound.OrchestraFunction
+    Haskore.Interface.CSound.Score
+    Haskore.Interface.CSound.SoundMap
+    Haskore.Interface.CSound.Tutorial
+    Haskore.Interface.CSound.TutorialCustom
     -- needs 'parsec' package
-    Haskore.Interface.MED.Text,
-    Haskore.Interface.MIDI,
-    Haskore.Interface.MIDI.InstrumentMap,
-    Haskore.Interface.MIDI.Note,
-    Haskore.Interface.MIDI.Read,
-    Haskore.Interface.MIDI.Render,
-    Haskore.Interface.MIDI.Write,
-    Haskore.Interface.MML,
-    Haskore.Melody,
-    Haskore.Melody.Standard,
-    Haskore.Music,
-    Haskore.Music.GeneralMIDI,
-    Haskore.Music.Rhythmic,
-    Haskore.Music.Standard,
-    Haskore.Performance,
-    Haskore.Performance.BackEnd,
-    Haskore.Performance.Context,
-    Haskore.Performance.Player,
-    Haskore.Performance.Default,
-    Haskore.Performance.Fancy,
-    Haskore.Process.Format,
-    Haskore.Process.Optimization,
-    Medium,
-    Medium.Temporal,
-    Medium.Plain.Binary,
-    Medium.Plain.List,
-    Medium.Plain.ContextFreeGrammar,
-    Medium.Controlled,
-    Medium.Controlled.List,
-    Medium.Controlled.ContextFreeGrammar,
+    Haskore.Interface.MED.Text
+    Haskore.Interface.MIDI
+    Haskore.Interface.MIDI.InstrumentMap
+    Haskore.Interface.MIDI.Note
+    Haskore.Interface.MIDI.Read
+    Haskore.Interface.MIDI.Render
+    Haskore.Interface.MIDI.Write
+    Haskore.Interface.MML
+    Haskore.Melody
+    Haskore.Melody.Standard
+    Haskore.Music
+    Haskore.Music.GeneralMIDI
+    Haskore.Music.Rhythmic
+    Haskore.Music.Standard
+    Haskore.Performance
+    Haskore.Performance.BackEnd
+    Haskore.Performance.Context
+    Haskore.Performance.Player
+    Haskore.Performance.Default
+    Haskore.Performance.Fancy
+    Haskore.Process.Format
+    Haskore.Process.Optimization
+    Medium
+    Medium.Temporal
+    Medium.Plain.Binary
+    Medium.Plain.List
+    Medium.Plain.ContextFreeGrammar
+    Medium.Controlled
+    Medium.Controlled.List
+    Medium.Controlled.ContextFreeGrammar
     Medium.LabeledControlled.List
-  Other-modules:
-    Haskore.General.LoopTreeRecursive,
-    Haskore.General.LoopTreeRecursiveGen,
-    Haskore.General.LoopTreeTagged,
-    Haskore.General.LoopTreeTaggedGen,
-    Haskore.General.GraphRecursiveGen,
-    Haskore.General.GraphTaggedGen,
-    Haskore.General.LetRec,
-    Haskore.General.Map,
-    Haskore.General.TagDictionary,
+  Other-Modules:
+    Haskore.General.LoopTreeRecursive
+    Haskore.General.LoopTreeRecursiveGen
+    Haskore.General.LoopTreeTagged
+    Haskore.General.LoopTreeTaggedGen
+    Haskore.General.GraphRecursiveGen
+    Haskore.General.GraphTaggedGen
+    Haskore.General.LetRec
+    Haskore.General.Map
+    Haskore.General.TagDictionary
     Haskore.General.Utility
 
 Executable test
diff --git a/src/Haskore.lhs b/src/Haskore.lhs
--- a/src/Haskore.lhs
+++ b/src/Haskore.lhs
@@ -35,25 +35,25 @@
 At the module level, Haskore is organized as follows:
 \begin{haskelllisting}
 
-> module Haskore (module Haskore,
->                 module Haskore.Music,
->                 module Haskore.Performance,
->                 module Haskore.Performance.Player,
->                 module Haskore.Interface.MIDI.Write,
->                 module Haskore.Interface.MIDI.Read,
->                 module Sound.MIDI.File.Save,
->                 module Sound.MIDI.File.Load,
->                 module Haskore.Interface.MIDI.Render)
->        where
+> module Haskore (
+>    module Haskore.Music,
+>    module Haskore.Performance,
+>    module Haskore.Performance.Player,
+>    module Haskore.Interface.MIDI.Write,
+>    module Haskore.Interface.MIDI.Read,
+>    module Haskore.Interface.MIDI.Render,
+>    module Sound.MIDI.File.Save,
+>    module Sound.MIDI.File.Load,
+>    ) where
 >
 > import qualified Haskore.Music
 > import qualified Haskore.Performance
 > import qualified Haskore.Performance.Player
 > import qualified Haskore.Interface.MIDI.Write
 > import qualified Haskore.Interface.MIDI.Read
+> import qualified Haskore.Interface.MIDI.Render
 > import qualified Sound.MIDI.File.Save
 > import qualified Sound.MIDI.File.Load
-> import qualified Haskore.Interface.MIDI.Render
 
 \end{haskelllisting}
 
diff --git a/src/Haskore/Composition/Drum.lhs b/src/Haskore/Composition/Drum.lhs
--- a/src/Haskore/Composition/Drum.lhs
+++ b/src/Haskore/Composition/Drum.lhs
@@ -22,7 +22,7 @@
 > import Haskore.Composition.Trill
 > import qualified Haskore.Basic.Duration as Duration
 > import Haskore.Basic.Duration (qn, en, )
-> import Haskore.Music (qnr, enr, (=:=), changeTempo, rest, line)
+> import Haskore.Music (qnr, enr, (=:=), changeTempo, rest, )
 > import Haskore.Melody.Standard (NoteAttributes, na, )
 
 > import qualified Haskore.Music             as Music
diff --git a/src/Haskore/Example/HeilandHimmel.hs b/src/Haskore/Example/HeilandHimmel.hs
--- a/src/Haskore/Example/HeilandHimmel.hs
+++ b/src/Haskore/Example/HeilandHimmel.hs
@@ -10,7 +10,6 @@
 
 import           Haskore.Melody.Standard   as Melody
 import           Haskore.Music.GeneralMIDI as MidiMusic
-import qualified Haskore.Music             as Music
 
 
 noAttr :: [Melody.NoteAttributes -> Melody.T] -> Melody.T
diff --git a/src/Haskore/Example/Kantate147.hs b/src/Haskore/Example/Kantate147.hs
--- a/src/Haskore/Example/Kantate147.hs
+++ b/src/Haskore/Example/Kantate147.hs
@@ -20,11 +20,10 @@
 import qualified Medium.Controlled.ContextFreeGrammar as Grammar
 import qualified Data.MarkovChain as MarkovChain
 
-import qualified Sound.MIDI.File         as MidiFile
+import qualified Haskore.Interface.MIDI.Write         as WriteMidi
 import qualified Haskore.Interface.MIDI.InstrumentMap as InstrumentMap
-import qualified Haskore.Interface.MIDI.Write        as WriteMidi
-import qualified Sound.MIDI.File.Save         as SaveMidi
-import qualified Sound.MIDI.General      as GeneralMidi
+import qualified Sound.MIDI.File.Save    as SaveMidi
+import qualified Sound.MIDI.File         as MidiFile
 
 import qualified Data.List as List
 
diff --git a/src/Haskore/Example/Miscellaneous.lhs b/src/Haskore/Example/Miscellaneous.lhs
--- a/src/Haskore/Example/Miscellaneous.lhs
+++ b/src/Haskore/Example/Miscellaneous.lhs
@@ -11,7 +11,6 @@
 > import qualified Haskore.Music           as Music
 > import           Haskore.Music (rest, delay, (/=:))
 > import           Haskore.Music.GeneralMIDI as MidiMusic
-> import           Haskore.Music.Standard  as StdMusic
 > import qualified Haskore.Music.Rhythmic  as RhyMusic
 > import qualified Haskore.Melody          as Melody
 > import           Haskore.Melody.Standard as StdMelody
@@ -34,7 +33,6 @@
 > import           Haskore.Basic.Duration ((%+))
 > import qualified Numeric.NonNegative.Wrapper as NonNeg
 
-> import System.IO(IO)
 > import Data.Tuple.HT (fst3, snd3, thd3, )
 
 
diff --git a/src/Haskore/General/LoopTreeRecursive.lhs b/src/Haskore/General/LoopTreeRecursive.lhs
--- a/src/Haskore/General/LoopTreeRecursive.lhs
+++ b/src/Haskore/General/LoopTreeRecursive.lhs
@@ -4,7 +4,7 @@
 > import qualified Haskore.General.TagDictionary as Dict
 
 > import Control.Monad.Trans.State(StateT, evalState, put, get, )
-> import Control.Monad (liftM, mapM, )
+> import Control.Monad (liftM, )
 
 Loop now needs an ID because there may be more than one of them.
 
diff --git a/src/Haskore/Interface/AutoTrack/ChartBar.lhs b/src/Haskore/Interface/AutoTrack/ChartBar.lhs
--- a/src/Haskore/Interface/AutoTrack/ChartBar.lhs
+++ b/src/Haskore/Interface/AutoTrack/ChartBar.lhs
@@ -16,7 +16,6 @@
 > import           Data.Char(isSpace, isAlpha)
 
 > import           Haskore.Basic.Duration(wn, (%+), )
-> import qualified Haskore.Basic.Duration as Dur
 
 > import Prelude hiding (length)
 
diff --git a/src/Haskore/Interface/CSound/OrchestraFunction.lhs b/src/Haskore/Interface/CSound/OrchestraFunction.lhs
--- a/src/Haskore/Interface/CSound/OrchestraFunction.lhs
+++ b/src/Haskore/Interface/CSound/OrchestraFunction.lhs
@@ -1,5 +1,4 @@
 > module Haskore.Interface.CSound.OrchestraFunction where
-> import Data.List (lookup, )
 
 > {- a fast variant of 'elem'
 >    precondition: list must be sorted
diff --git a/src/Haskore/Interface/CSound/Score.lhs b/src/Haskore/Interface/CSound/Score.lhs
--- a/src/Haskore/Interface/CSound/Score.lhs
+++ b/src/Haskore/Interface/CSound/Score.lhs
@@ -24,8 +24,6 @@
 
 > import qualified Numeric.NonNegative.Class as NonNeg
 
-> import System.IO
-
 \end{haskelllisting}
 
 We will represent a score file as a sequence of \keyword{score statements}:
@@ -128,7 +126,7 @@
 achieved by the following two functions:
 \begin{haskelllisting}
 
-> fromPerformanceBE :: (NonNeg.C time) =>
+> fromPerformanceBE :: (NonNeg.C time, Num time) =>
 >    (time -> Time) ->
 >    PerformanceBE.T time CSNote.T -> T
 
@@ -188,7 +186,7 @@
 >          (PerformanceBE.eventDur  event)
 >          (PerformanceBE.eventNote event)) .
 >    TimeListAbs.toPairList .
->    TimeList.toAbsoluteEventList 0
+>    TimeList.toAbsoluteEventList NonNeg.zero
 >
 > fromRhythmicPerformance ::
 >    (RealFrac time, NonNeg.C time, RealFrac dyn, Ord drum, Ord instr) =>
diff --git a/src/Haskore/Interface/CSound/Tutorial.lhs b/src/Haskore/Interface/CSound/Tutorial.lhs
--- a/src/Haskore/Interface/CSound/Tutorial.lhs
+++ b/src/Haskore/Interface/CSound/Tutorial.lhs
@@ -31,8 +31,8 @@
 > import Haskore.Music ((+:+), (=:=), qnr)
 > import Haskore.Melody as Melody
 
-> import System.IO
-> import System.Cmd( system )
+> import System.Cmd (system, )
+> import System.Exit (ExitCode, )
 
 \end{haskelllisting}
 
@@ -1181,7 +1181,7 @@
 are put by \function{CSound.Score.statementToWords}.
 \begin{haskelllisting}
 
-> test :: Output out => (Name, Score.T, TutOrchestra out) -> IO ()
+> test :: Output out => (Name, Score.T, TutOrchestra out) -> IO ExitCode
 > test = play csoundDir
 >
 > toOrchestra :: Output out => TutOrchestra out -> Orchestra.T out
@@ -1189,7 +1189,7 @@
 >    Orchestra.Cons hd (SoundMap.instrumentTableToInstrBlocks instrs)
 >
 > play :: Output out =>
->    FilePath -> (Name, Score.T, TutOrchestra out) -> IO ()
+>    FilePath -> (Name, Score.T, TutOrchestra out) -> IO ExitCode
 > play dir (name, s, o') =
 >    let scorename = name ++ ".sco"
 >        orchname  = name ++ ".orc"
@@ -1219,7 +1219,6 @@
 >           system (dir ++ "/csound.exe -W -o " ++ wavename
 >                     ++ " " ++ orchname ++ " " ++ scorename)
 > -}
->           return ()
 
 \end{haskelllisting}
 
diff --git a/src/Haskore/Interface/CSound/TutorialCustom.lhs b/src/Haskore/Interface/CSound/TutorialCustom.lhs
--- a/src/Haskore/Interface/CSound/TutorialCustom.lhs
+++ b/src/Haskore/Interface/CSound/TutorialCustom.lhs
@@ -30,8 +30,8 @@
 > import Haskore.Music ((+:+), (=:=), qnr)
 > import Haskore.Melody as Melody
 
-> import System.IO
-> import System.Cmd( system )
+> import System.Cmd (system, )
+> import System.Exit (ExitCode, )
 
 > lineCS :: EvalRate -> SigExp -> SigExp
 >               -> SigExp -> SigExp
@@ -1213,7 +1213,7 @@
 are put by \function{CSound.Score.statementToWords}.
 \begin{haskelllisting}
 
-> test :: Output out => (Name, Score.T, TutOrchestra out) -> IO ()
+> test :: Output out => (Name, Score.T, TutOrchestra out) -> IO ExitCode
 > test = play csoundDir
 >
 > applyOutFunc :: OutFunc out -> out
@@ -1227,7 +1227,7 @@
 >                  InstrBlock i 0 (applyOutFunc out) []) instrs)
 >
 > play :: Output out =>
->    FilePath -> (Name, Score.T, TutOrchestra out) -> IO ()
+>    FilePath -> (Name, Score.T, TutOrchestra out) -> IO ExitCode
 > play dir (name, s, o') =
 >    let scorename = name ++ ".sco"
 >        orchname  = name ++ ".orc"
@@ -1257,7 +1257,6 @@
 >           system (dir ++ "/csound.exe -W -o " ++ wavename
 >                     ++ " " ++ orchname ++ " " ++ scorename)
 > -}
->           return ()
 
 \end{haskelllisting}
 
diff --git a/src/Haskore/Interface/MED/Text.hs b/src/Haskore/Interface/MED/Text.hs
--- a/src/Haskore/Interface/MED/Text.hs
+++ b/src/Haskore/Interface/MED/Text.hs
@@ -8,7 +8,6 @@
 module Haskore.Interface.MED.Text where
 
 import qualified Haskore.Basic.Pitch as Pitch
-import qualified Haskore.Music       as Music
 import qualified Haskore.Melody      as Melody
 
 import qualified Haskore.Process.Format as Fmt
@@ -78,8 +77,8 @@
                   (Parse.satisfy (\p -> 'A' <= p && p <= 'V'))))
        return (Just ((octave,pitchClass), instr)))
    <|>
-   (do Parse.char '-'
-       ParseComb.count 4 ParseComb.anyToken
+   (do _ <- Parse.char '-'
+       _ <- ParseComb.count 4 ParseComb.anyToken
        return Nothing)
 
 parseCell :: CharParser () (Maybe (Pitch.T,Instrument), String)
diff --git a/src/Haskore/Interface/MIDI/Note.lhs b/src/Haskore/Interface/MIDI/Note.lhs
--- a/src/Haskore/Interface/MIDI/Note.lhs
+++ b/src/Haskore/Interface/MIDI/Note.lhs
@@ -17,7 +17,6 @@
 > import qualified Haskore.Basic.Pitch                  as Pitch
 > import           Data.Ord.HT (limit, )
 > import           Data.Maybe.HT (toMaybe, )
-> import qualified Data.List as List
 
 > data T =
 >    Cons {
diff --git a/src/Haskore/Interface/MIDI/Read.lhs b/src/Haskore/Interface/MIDI/Read.lhs
--- a/src/Haskore/Interface/MIDI/Read.lhs
+++ b/src/Haskore/Interface/MIDI/Read.lhs
@@ -14,12 +14,11 @@
 > import qualified Haskore.Interface.MIDI.InstrumentMap as InstrMap
 > import           Sound.MIDI.File                  as MidiFile
 > import qualified Sound.MIDI.File.Event            as MidiFileEvent
-> import qualified Sound.MIDI.File.Event.Meta       as MetaEvent
 > import qualified Sound.MIDI.Message.Channel       as ChannelMsg
 > import qualified Sound.MIDI.Message.Channel.Voice as Voice
 > import qualified Sound.MIDI.General               as GeneralMidi
-> import Sound.MIDI.File.Event (T(MIDIEvent, MetaEvent), ElapsedTime, )
-> import Sound.MIDI.File.Event.Meta (T(SetTempo), ElapsedTime, Tempo, defltST, defltDurT, )
+> import Sound.MIDI.File.Event (T(MIDIEvent, MetaEvent), )
+> import Sound.MIDI.File.Event.Meta (T(SetTempo), defltST, defltDurT, )
 > import Sound.MIDI.Message.Channel (Body(Voice), Channel, )
 > import Sound.MIDI.Message.Channel.Voice (Program, )
 >
diff --git a/src/Haskore/Interface/MIDI/Render.lhs b/src/Haskore/Interface/MIDI/Render.lhs
--- a/src/Haskore/Interface/MIDI/Render.lhs
+++ b/src/Haskore/Interface/MIDI/Render.lhs
@@ -24,7 +24,8 @@
 > import qualified Numeric.NonNegative.Class   as NonNeg
 > import qualified Numeric.NonNegative.Wrapper as NonNegW
 
-> import System.Cmd (rawSystem)
+> import System.Cmd (rawSystem, )
+> import System.Exit (ExitCode, )
 
 \end{haskelllisting}
 }
@@ -106,14 +107,13 @@
 > fileName :: FilePath
 > fileName = "test.mid"
 
-> play :: String -> [String] -> MidiMusic.T -> IO ()
+> play :: String -> [String] -> MidiMusic.T -> IO ExitCode
 > play cmd opts m =
 >    do fileFromGeneralMIDIMusic fileName m
 >       rawSystem cmd (opts ++ [fileName])
->       return ()
 >
 > playWin95, playWinNT,
->    playLinux, playAlsa, playTimidity, playTimidityJack :: MidiMusic.T -> IO ()
+>    playLinux, playAlsa, playTimidity, playTimidityJack :: MidiMusic.T -> IO ExitCode
 > playWin95        = play "mplayer" []
 > playWinNT        = play "mplay32" []
 > playLinux        = play "playmidi" ["-rf"]
@@ -132,10 +132,9 @@
 {\small
 \begin{haskelllisting}
 
-> playTest :: IO ()
+> playTest :: IO ExitCode
 > playTest =
->    do rawSystem "mplay32" [fileName]
->       return ()
+>    rawSystem "mplay32" [fileName]
 
 \end{haskelllisting} }
 
diff --git a/src/Haskore/Interface/MIDI/Write.lhs b/src/Haskore/Interface/MIDI/Write.lhs
--- a/src/Haskore/Interface/MIDI/Write.lhs
+++ b/src/Haskore/Interface/MIDI/Write.lhs
@@ -398,7 +398,9 @@
 >        d = PerformanceBE.eventDur  ev
 >        (mec0, mec1) = MidiNote.toMIDIEvents note
 >    in  maybe (TimeList.consBody mec0)
->           (\pcME -> TimeList.consBody pcME . TimeList.cons 0 mec0)
+>           (\pcME ->
+>               TimeList.consBody pcME .
+>               TimeList.cons NonNeg.zero mec0)
 >           progChange
 >           (TimeList.insert d mec1 mevs)
 
diff --git a/src/Haskore/Interface/MML.lhs b/src/Haskore/Interface/MML.lhs
--- a/src/Haskore/Interface/MML.lhs
+++ b/src/Haskore/Interface/MML.lhs
@@ -9,7 +9,6 @@
 > import qualified Haskore.Melody         as Melody
 > import           Haskore.Basic.Duration((%+))
 
-> import qualified Data.List as List
 > import Control.Monad.Trans.State (State, state, evalState, )
 
 \end{haskelllisting}
diff --git a/src/Haskore/Performance/Fancy.lhs b/src/Haskore/Performance/Fancy.lhs
--- a/src/Haskore/Performance/Fancy.lhs
+++ b/src/Haskore/Performance/Fancy.lhs
@@ -14,8 +14,8 @@
 
 > import Haskore.Performance (eventDur, )
 
-> -- import qualified Data.EventList.Relative.TimeBody    as TimeList
-> import qualified Data.EventList.Relative.TimeTime  as TimeListPad
+> -- import qualified Data.EventList.Relative.TimeBody  as TimeList
+> -- import qualified Data.EventList.Relative.TimeTime  as TimeListPad
 > import qualified Data.EventList.Relative.MixedTime as TimeListPad
 > import qualified Data.EventList.Relative.BodyTime  as BodyTimeList
 
diff --git a/src/Test/CSound/Makefile b/src/Test/CSound/Makefile
--- a/src/Test/CSound/Makefile
+++ b/src/Test/CSound/Makefile
@@ -1,2 +1,5 @@
 %.wav:	%.orc %.sco
 	csound -W -b 1024 -d -m 0 -o $@ $^
+
+play-%:	%.orc %.sco
+	OPCODEDIR=/usr/lib/csound/plugins csound -n -o dac $^
