diff --git a/cabal-lenses.cabal b/cabal-lenses.cabal
--- a/cabal-lenses.cabal
+++ b/cabal-lenses.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10.0
 name:               cabal-lenses
-version:            0.11.0
+version:            0.12.0
 license:            BSD3
 license-file:       LICENSE
 maintainer:         daniel.trstenjak@gmail.com
@@ -48,7 +48,7 @@
         base >=4.8 && <5,
         lens >=4.0.1 && <5.3,
         unordered-containers >=0.2.3.3 && <0.3,
-        Cabal >=3.6.3.0 && <4.0,
+        Cabal >=3.12 && <4.0,
         system-filepath >=0.4.9 && <0.5,
         system-fileio >=0.3.12 && <0.4,
         strict >=0.3.2 && <0.6,
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, TypeFamilies, FlexibleInstances, MultiParamTypeClasses #-}
+{-# LANGUAGE TemplateHaskell, TypeFamilies, TypeOperators, FlexibleInstances, MultiParamTypeClasses #-}
 
 -- |
 -- Lenses for several data types of the 'Distribution.Package' module.
diff --git a/lib/CabalLenses/Version.hs b/lib/CabalLenses/Version.hs
--- a/lib/CabalLenses/Version.hs
+++ b/lib/CabalLenses/Version.hs
@@ -6,7 +6,9 @@
 
 module CabalLenses.Version where
 
+import Data.Maybe (fromMaybe)
 import Distribution.Version
+import Distribution.Types.VersionInterval
 import Control.Lens
 
 
@@ -14,11 +16,11 @@
 versionBranchL = iso versionNumbers mkVersion
 
 
---intervals :: Iso' VersionRange [VersionInterval]
---intervals = iso asVersionIntervals toVersionRange
---   where
---      toVersionRange []        = anyVersion
---      toVersionRange intervals = fromVersionIntervals . VersionIntervals $ intervals
+intervals :: Iso' VersionRange [VersionInterval]
+intervals = iso asVersionIntervals toVersionRange
+   where
+      toVersionRange []        = anyVersion
+      toVersionRange intervals = fromMaybe noVersion (fromVersionIntervals <$> mkVersionIntervals intervals)
 
 
 lowerBound :: Lens' VersionInterval LowerBound
