diff --git a/sample-frame-np.cabal b/sample-frame-np.cabal
--- a/sample-frame-np.cabal
+++ b/sample-frame-np.cabal
@@ -1,5 +1,5 @@
 Name:             sample-frame-np
-Version:          0.0.1
+Version:          0.0.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -9,10 +9,12 @@
 Category:         Sound
 Synopsis:         Orphan instances for types from sample-frame and numericprelude
 Description:
-   Orphan instances for types from sample-frame package
-   and type classes from numeric-prelude.
+   Orphan instances for types from @sample-frame@ package
+   and type classes from @numeric-prelude@.
+   Using this package instead defining custom orphan instances
+   saves you from conflicting instances.
    .
-   This is used by packages synthesizer.
+   This is used by packages @synthesizer@, @synthesizer-alsa@, @synthesizer-llvm@.
 Tested-With:       GHC==6.10.4
 Cabal-Version:     >=1.2
 Build-Type:        Simple
@@ -23,7 +25,7 @@
 Library
   Build-Depends:
     sample-frame >=0.0.1 && <0.1,
-    numeric-prelude >= 0.1.2 && <0.2
+    numeric-prelude >= 0.2 && <0.3
   If flag(splitBase)
     Build-Depends:
       base >= 2 && <5
@@ -38,3 +40,6 @@
 
   Exposed-Modules:
     Sound.Frame.NumericPrelude.Stereo
+
+  Other-Modules:
+    Sound.Frame.NumericPrelude.StereoApplicative
diff --git a/src/Sound/Frame/NumericPrelude/Stereo.hs b/src/Sound/Frame/NumericPrelude/Stereo.hs
--- a/src/Sound/Frame/NumericPrelude/Stereo.hs
+++ b/src/Sound/Frame/NumericPrelude/Stereo.hs
@@ -20,8 +20,8 @@
 import qualified NumericPrelude.Elementwise as Elem
 import Control.Applicative (Applicative(pure), )
 
-import NumericPrelude
-import PreludeBase hiding (map)
+import NumericPrelude.Numeric
+import NumericPrelude.Base hiding (map)
 import Prelude ()
 
 
diff --git a/src/Sound/Frame/NumericPrelude/StereoApplicative.hs b/src/Sound/Frame/NumericPrelude/StereoApplicative.hs
new file mode 100644
--- /dev/null
+++ b/src/Sound/Frame/NumericPrelude/StereoApplicative.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{- |
+Define some instance for NumericPrelude.Numeric type classes
+in terms of Applicative and Foldable.
+This is more elegant, but maybe not faster.
+-}
+module Sound.Frame.NumericPrelude.StereoApplicative (T, left, right, cons, map, ) where
+
+import qualified Sound.Frame.Stereo as Stereo
+import Sound.Frame.Stereo (T, left, right, cons, map, )
+
+import qualified Algebra.NormedSpace.Maximum   as NormedMax
+import qualified Algebra.NormedSpace.Euclidean as NormedEuc
+import qualified Algebra.NormedSpace.Sum       as NormedSum
+
+import qualified Algebra.Module    as Module
+import qualified Algebra.Algebraic as Algebraic
+import qualified Algebra.Additive  as Additive
+
+import Control.Applicative (Applicative(pure), liftA2, )
+
+import NumericPrelude.Numeric
+import NumericPrelude.Base hiding (map)
+import Prelude ()
+
+
+instance (Additive.C a) => Additive.C (T a) where
+   {-# INLINE zero #-}
+   {-# INLINE negate #-}
+   {-# INLINE (+) #-}
+   {-# INLINE (-) #-}
+   zero   = pure zero
+   (+)    = liftA2 (+)
+   (-)    = liftA2 (-)
+   negate = fmap negate
+
+instance (Module.C a v) => Module.C a (T v) where
+   {-# INLINE (*>) #-}
+   a*>v = fmap (a*>) v
+
+
+instance (Additive.C a, NormedSum.C a v) => NormedSum.C a (T v) where
+   {-# INLINE norm #-}
+   norm = NormedSum.normFoldable1
+
+instance (NormedEuc.Sqr a v) => NormedEuc.Sqr a (T v) where
+   {-# INLINE normSqr #-}
+   normSqr = NormedEuc.normSqrFoldable1
+
+instance (Algebraic.C a, NormedEuc.Sqr a v) => NormedEuc.C a (T v) where
+   {-# INLINE norm #-}
+   norm = NormedEuc.defltNorm
+
+instance (Ord a, NormedMax.C a v) => NormedMax.C a (T v) where
+   {-# INLINE norm #-}
+   norm = NormedMax.normFoldable1
