diff --git a/src/Synthesizer/Dimensional/Rate/Filter.hs b/src/Synthesizer/Dimensional/Rate/Filter.hs
--- a/src/Synthesizer/Dimensional/Rate/Filter.hs
+++ b/src/Synthesizer/Dimensional/Rate/Filter.hs
@@ -250,7 +250,7 @@
    fmap
       (\f devs ->
          SigA.processBody
-            (Sig.fromStorableSignal .
+            (fromStorable .
              f (SigA.processBody toStorable devs) .
              toStorable))
       (phaseModulationGeneric ip minDev maxDev)
diff --git a/src/Synthesizer/Dimensional/RateAmplitude/Cut.hs b/src/Synthesizer/Dimensional/RateAmplitude/Cut.hs
--- a/src/Synthesizer/Dimensional/RateAmplitude/Cut.hs
+++ b/src/Synthesizer/Dimensional/RateAmplitude/Cut.hs
@@ -282,18 +282,16 @@
    do unit <- toTimeScalar unit'
       chunkSize <-
          intFromTime98 "Dimensional.Cut.arrangeStorableVolume" chunkSize'
-      return $ \sched' ->
-         let sched =
-                EventList.mapBody
-                   (SigG.fromState (SigG.LazySize chunkSize) .
-                    SigA.vectorSamples (toAmplitudeScalar z))
-                sched'
-             z =
+      return $ \sched ->
+         let z =
                 SigA.fromBody amp $
                 SigG.toState $
                 CutSt.arrange (SigSt.chunkSize chunkSize) $ 
                 EventList.resample
-                   (NonNeg.fromNumberMsg "Dimensional.Cut.arrangeVolume" unit)
+                   (NonNeg.fromNumberMsg "Dimensional.Cut.arrangeVolume" unit) $
+                EventList.mapBody
+                   (SigG.fromState (SigG.LazySize chunkSize) .
+                    SigA.vectorSamples (toAmplitudeScalar z))
                 sched
          in  z
 
@@ -318,15 +316,13 @@
    do unit <- toTimeScalar unit'
       chunkSize <-
          intFromTime98 "Dimensional.Cut.arrangeStorableVolume" chunkSize'
-      return $ \sched' ->
-         let sched =
-                EventList.mapBody
-                   (SigA.vectorSamples (toAmplitudeScalar z))
-                sched'
-             z =
+      return $ \sched ->
+         let z =
                 SigA.fromBody amp $
                 CutSt.arrange (SigSt.chunkSize chunkSize) $
                 EventList.resample
-                   (NonNeg.fromNumberMsg "Dimensional.Cut.arrangeStorableVolume" unit)
+                   (NonNeg.fromNumberMsg "Dimensional.Cut.arrangeStorableVolume" unit) $
+                EventList.mapBody
+                   (SigA.vectorSamples (toAmplitudeScalar z))
                 sched
          in  z
diff --git a/src/Synthesizer/Dimensional/RateAmplitude/File.hs b/src/Synthesizer/Dimensional/RateAmplitude/File.hs
--- a/src/Synthesizer/Dimensional/RateAmplitude/File.hs
+++ b/src/Synthesizer/Dimensional/RateAmplitude/File.hs
@@ -78,7 +78,7 @@
    in  Write.extended SigSt.hPut opts SoxOpt.none name
           (round sampleRate)
           (Builder.toLazyStorableVector SigSt.defaultChunkSize $
-           Sig.monoidConcatMap (BinSmp.outputFromCanonical put) $
+           Sig.foldMap (BinSmp.outputFromCanonical put) $
            -- ToDo: flip DN.divToScalar -> ampToScalar
            SigA.vectorSamples (flip DN.divToScalar amp) sig)
 
diff --git a/src/Synthesizer/Dimensional/RateAmplitude/Instrument.hs b/src/Synthesizer/Dimensional/RateAmplitude/Instrument.hs
--- a/src/Synthesizer/Dimensional/RateAmplitude/Instrument.hs
+++ b/src/Synthesizer/Dimensional/RateAmplitude/Instrument.hs
@@ -454,7 +454,7 @@
    DN.T Dim.Frequency a ->
    Proc.T s Dim.Time a (SigA.R s Dim.Voltage a a)
 osciSharp freq =
-   Osci.shapeMod (DN.voltage 1 `WaveCtrl.amplified` Wave.powerNormed) zero freq $:
+   Osci.shapeMod (DN.voltage 1 `WaveCtrl.amplified` Wave.powerNormed2) zero freq $:
    (Flat.canonicalize $^
     DN.fromNumber 10 &*^ CtrlR.exponential2 (DN.time 0.01))
 
diff --git a/src/Synthesizer/Dimensional/RateAmplitude/Play.hs b/src/Synthesizer/Dimensional/RateAmplitude/Play.hs
--- a/src/Synthesizer/Dimensional/RateAmplitude/Play.hs
+++ b/src/Synthesizer/Dimensional/RateAmplitude/Play.hs
@@ -66,7 +66,7 @@
    in  Play.extended SigSt.hPut opts SoxOpt.none
           (round sampleRate)
           (Builder.toLazyStorableVector SigA.defaultChunkSize $
-           Sig.monoidConcatMap (BinSmp.outputFromCanonical put) $
+           Sig.foldMap (BinSmp.outputFromCanonical put) $
            SigA.vectorSamples (flip DN.divToScalar amp) sig)
 
 
diff --git a/src/Synthesizer/Dimensional/RateAmplitude/Rain.hs b/src/Synthesizer/Dimensional/RateAmplitude/Rain.hs
--- a/src/Synthesizer/Dimensional/RateAmplitude/Rain.hs
+++ b/src/Synthesizer/Dimensional/RateAmplitude/Rain.hs
@@ -130,6 +130,10 @@
    fromIntegral pc / 12 + fromIntegral oct
 
 
+type Signal s amp a = SigA.T (Rate.Phantom s) amp (SigSt.T a)
+type Flat = Amp.Flat Double
+type Volt = Amp.Dimensional Dim.Voltage Double
+
 {-
 delay ::
    (SigG2.Transform sig y (Stereo.T y), SigG.Write sig y,
@@ -143,8 +147,7 @@
 delay ::
    DN.Time Double ->
    Proc.T s Dim.Time Double
-      (SigA.T (Rate.Phantom s) (Amp.Flat Double) (SigSt.T Double) ->
-       SigA.T (Rate.Phantom s) (Amp.Flat Double) (SigSt.T (Stereo.T Double)))
+      (Signal s Flat Double -> Signal s Flat (Stereo.T Double))
 delay time =
    let (appDelay, merge) =
           if time>=zero
@@ -157,9 +160,7 @@
 bell ::
    DN.Time Double ->
    DN.Frequency Double ->
-   Proc.T s Dim.Time Double
-      (SigA.T (Rate.Phantom s) (Amp.Flat Double)
-          (SigSt.T (Stereo.T Double)))
+   Proc.T s Dim.Time Double (Signal s Flat (Stereo.T Double))
 bell del freq =
    delay del .:
    SigA.store timeUnit .:
@@ -236,7 +237,7 @@
 
 _stringMorph3 duration volume freq phase =
    Osci.shapeMod
-      (makeWave volume (Wave.powerNormed . (^2)))
+      (makeWave volume (Wave.powerNormed2 . (^2)))
       phase freq
     $: Ctrl.line (stringAttack + duration)
           (DN.scalar 0.1, DN.scalar 2)
@@ -313,9 +314,7 @@
 {-# INLINE chordSnds #-}
 chordSnds ::
    Proc.T s Dim.Time Double
-      (EventList.T NonNeg.Double
-         (SigA.T (Rate.Phantom s) (Amp.Dimensional Dim.Voltage Double)
-             (SigSt.T (Stereo.T Double))))
+      (EventList.T NonNeg.Double (Signal s Volt (Stereo.T Double)))
 chordSnds =
    EventList.traverseBody
       (\(tones,dur) ->
@@ -387,9 +386,7 @@
 {-# INLINE evolvingDropSnds #-}
 evolvingDropSnds ::
    Proc.T s Dim.Time Double
-      (EventList.T NonNeg.Double
-         (SigA.T (Rate.Phantom s) (Amp.Dimensional Dim.Voltage Double)
-             (SigSt.T (Stereo.T Double))))
+      (EventList.T NonNeg.Double (Signal s Volt (Stereo.T Double)))
 evolvingDropSnds =
    EventList.traverseBody
       (\(vol,time,freq) ->
@@ -415,10 +412,7 @@
 When writing to a raw 'sw' format file this problem does not occur.
 -}
 {-# INLINE simpleStorable #-}
-simpleStorable ::
-   Proc.T s Dim.Time Double
-      (SigA.T (Rate.Phantom s) (Amp.Dimensional Dim.Voltage Double)
-          (SigSt.T (Stereo.T Double)))
+simpleStorable :: Proc.T s Dim.Time Double (Signal s Volt (Stereo.T Double))
 simpleStorable =
    FiltA.amplify 0.5 $^
    (Cut.arrangeStorableVolume timeUnit (DN.voltage 1) timeUnit
diff --git a/synthesizer-dimensional.cabal b/synthesizer-dimensional.cabal
--- a/synthesizer-dimensional.cabal
+++ b/synthesizer-dimensional.cabal
@@ -1,5 +1,5 @@
 Name:           synthesizer-dimensional
-Version:        0.8.0.1
+Version:        0.8.0.2
 License:        GPL
 License-File:   LICENSE
 Author:         Henning Thielemann <haskell@henning-thielemann.de>
@@ -33,13 +33,13 @@
   Location:    http://code.haskell.org/synthesizer/dimensional/
 
 Source-Repository this
-  Tag:         0.8.0.1
+  Tag:         0.8.0.2
   Type:        darcs
   Location:    http://code.haskell.org/synthesizer/dimensional/
 
 Library
   Build-Depends:
-    synthesizer-core >=0.8 && <0.9,
+    synthesizer-core >=0.8.1 && <0.9,
     transformers >=0.2 && <0.6,
     event-list >=0.1 && <0.2,
     non-negative >=0.1 && <0.2,
