module Distribution.Types.PackageId.Lens (
    PackageIdentifier,
    module Distribution.Types.PackageId.Lens,
    ) where

import Distribution.Compat.Lens
import Distribution.Compat.Prelude
import Prelude ()

import Distribution.Types.PackageId   (PackageIdentifier)
import Distribution.Types.PackageName (PackageName)
import Distribution.Version           (Version)

import qualified Distribution.Types.PackageId as T

pkgName :: Lens' PackageIdentifier PackageName
pkgName :: LensLike
  f PackageIdentifier PackageIdentifier PackageName PackageName
pkgName PackageName -> f PackageName
f PackageIdentifier
s = (PackageName -> PackageIdentifier)
-> f PackageName -> f PackageIdentifier
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\PackageName
x -> PackageIdentifier
s { pkgName :: PackageName
T.pkgName = PackageName
x }) (PackageName -> f PackageName
f (PackageIdentifier -> PackageName
T.pkgName PackageIdentifier
s))
{-# INLINE pkgName #-}

pkgVersion :: Lens' PackageIdentifier Version
pkgVersion :: LensLike f PackageIdentifier PackageIdentifier Version Version
pkgVersion Version -> f Version
f PackageIdentifier
s = (Version -> PackageIdentifier) -> f Version -> f PackageIdentifier
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Version
x -> PackageIdentifier
s { pkgVersion :: Version
T.pkgVersion = Version
x }) (Version -> f Version
f (PackageIdentifier -> Version
T.pkgVersion PackageIdentifier
s))
{-# INLINE pkgVersion #-}