cabal-lenses 0.3.1 → 0.4
raw patch · 3 files changed
+34/−17 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- CabalLenses.Package: depPackageName :: Lens' Dependency PackageName
- CabalLenses.Package: depVersionRange :: Lens' Dependency VersionRange
- CabalLenses.Package: pkgNameString :: Lens' PackageName String
- CabalLenses.Version: rangeToIntervals :: Iso' VersionRange [VersionInterval]
+ CabalLenses.Package: instance Wrapped PackageName
+ CabalLenses.Package: instance t ~ PackageName => Rewrapped PackageName t
+ CabalLenses.Package: packageName :: Lens' Dependency PackageName
+ CabalLenses.Package: versionRange :: Lens' Dependency VersionRange
+ CabalLenses.Version: bound :: Lens' LowerBound Bound
+ CabalLenses.Version: intervals :: Iso' VersionRange [VersionInterval]
+ CabalLenses.Version: version :: Lens' LowerBound Version
- CabalLenses.PackageDescription: condTreeComponentsL :: Lens (CondTree v_a5JC c_a5JD a_a5JE) (CondTree v_a8mw c_a5JD a_a5JE) [(Condition v_a5JC, CondTree v_a5JC c_a5JD a_a5JE, Maybe (CondTree v_a5JC c_a5JD a_a5JE))] [(Condition v_a8mw, CondTree v_a8mw c_a5JD a_a5JE, Maybe (CondTree v_a8mw c_a5JD a_a5JE))]
+ CabalLenses.PackageDescription: condTreeComponentsL :: Lens (CondTree v_a5Jq c_a5Jr a_a5Js) (CondTree v_a8t0 c_a5Jr a_a5Js) [(Condition v_a5Jq, CondTree v_a5Jq c_a5Jr a_a5Js, Maybe (CondTree v_a5Jq c_a5Jr a_a5Js))] [(Condition v_a8t0, CondTree v_a8t0 c_a5Jr a_a5Js, Maybe (CondTree v_a8t0 c_a5Jr a_a5Js))]
- CabalLenses.PackageDescription: condTreeConstraintsL :: Lens' (CondTree v_a5JC c_a5JD a_a5JE) c_a5JD
+ CabalLenses.PackageDescription: condTreeConstraintsL :: Lens' (CondTree v_a5Jq c_a5Jr a_a5Js) c_a5Jr
- CabalLenses.PackageDescription: condTreeDataL :: Lens' (CondTree v_a5JC c_a5JD a_a5JE) a_a5JE
+ CabalLenses.PackageDescription: condTreeDataL :: Lens' (CondTree v_a5Jq c_a5Jr a_a5Js) a_a5Js
Files
- cabal-lenses.cabal +3/−2
- lib/CabalLenses/Package.hs +15/−13
- lib/CabalLenses/Version.hs +16/−2
cabal-lenses.cabal view
@@ -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
lib/CabalLenses/Package.hs view
@@ -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
lib/CabalLenses/Version.hs view
@@ -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