diff --git a/cabal-lenses.cabal b/cabal-lenses.cabal
--- a/cabal-lenses.cabal
+++ b/cabal-lenses.cabal
@@ -1,5 +1,5 @@
 name: cabal-lenses
-version: 0.3.1
+version: 0.4
 cabal-version: >=1.9.2
 build-type: Simple
 license: BSD3
@@ -9,8 +9,9 @@
 description:
     Lenses and traversals (compatible with the <https://hackage.haskell.org/package/lens lens> library) for
     the <https://hackage.haskell.org/package/Cabal Cabal> library.
-category: Utils
+category: Utils, Development
 author: Daniel Trstenjak
+tested-with: GHC ==7.6.2 GHC ==7.6.3 GHC ==7.8.3
 extra-source-files:
     README.md
     CHANGELOG
diff --git a/lib/CabalLenses/Package.hs b/lib/CabalLenses/Package.hs
--- a/lib/CabalLenses/Package.hs
+++ b/lib/CabalLenses/Package.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TemplateHaskell, TypeFamilies, FlexibleInstances, MultiParamTypeClasses #-}
 
 -- |
 -- Lenses for several data types of the 'Distribution.Package' module.
@@ -8,14 +8,7 @@
 
 import Distribution.Package (PackageName(..) , PackageIdentifier(..) , Dependency(..))
 import Distribution.Version (VersionRange)
-import Control.Lens (makeLensesFor, Lens', lens)
-
-
-pkgNameString :: Lens' PackageName String
-pkgNameString = lens getString setString
-   where
-      getString (PackageName str) = str
-      setString _                 = PackageName
+import Control.Lens
 
 
 makeLensesFor [ ("pkgName"   , "pkgNameL")
@@ -23,15 +16,24 @@
               ] ''PackageIdentifier
 
 
-depPackageName :: Lens' Dependency PackageName
-depPackageName = lens getPkgName setPkgName
+instance (t ~ PackageName) => Rewrapped PackageName t
+instance Wrapped PackageName where
+  type Unwrapped PackageName = String
+  _Wrapped' = iso getPackageName PackageName
+     where
+        getPackageName (PackageName n) = n
+  {-# INLINE _Wrapped' #-}
+
+
+packageName :: Lens' Dependency PackageName
+packageName = lens getPkgName setPkgName
    where
       getPkgName (Dependency pkgName _)          = pkgName
       setPkgName (Dependency _ range) newPkgName = Dependency newPkgName range
 
 
-depVersionRange :: Lens' Dependency VersionRange
-depVersionRange = lens getRange setRange
+versionRange :: Lens' Dependency VersionRange
+versionRange = lens getRange setRange
    where
       getRange (Dependency _ range)   = range
       setRange (Dependency pkgName _) = Dependency pkgName
diff --git a/lib/CabalLenses/Version.hs b/lib/CabalLenses/Version.hs
--- a/lib/CabalLenses/Version.hs
+++ b/lib/CabalLenses/Version.hs
@@ -17,8 +17,8 @@
               ] ''Version
 
 
-rangeToIntervals :: Iso' VersionRange [VersionInterval]
-rangeToIntervals = iso asVersionIntervals toVersionRange
+intervals :: Iso' VersionRange [VersionInterval]
+intervals = iso asVersionIntervals toVersionRange
    where
       toVersionRange intervals =
          fromMaybe anyVersion (fromVersionIntervals <$> mkVersionIntervals intervals)
@@ -26,6 +26,20 @@
 
 lowerBound :: Lens' VersionInterval LowerBound
 lowerBound = _1
+
+
+version :: Lens' LowerBound Version
+version = lens getVersion setVersion
+   where
+      getVersion (LowerBound vers _)          = vers
+      setVersion (LowerBound _    bound) vers = LowerBound vers bound
+
+
+bound :: Lens' LowerBound Bound
+bound = lens getBound setBound
+   where
+      getBound (LowerBound _ bound)      = bound
+      setBound (LowerBound vers _) bound = LowerBound vers bound
 
 
 upperBound :: Lens' VersionInterval UpperBound
