module Hix.Managed.Cabal.Data.SourcePackage where import Distribution.Pretty (Pretty (pretty)) import Distribution.Simple (Version) import GHC.Exts (IsList) import Hix.Class.Map (LookupMaybe, LookupMonoid, NMap, nPretty1, nPrettyWith) import Hix.Data.Dep (Dep) import Hix.Data.PackageName (PackageName) import Hix.Pretty (prettyL) newtype SourcePackageDeps = SourcePackageDeps (Map Version [Dep]) deriving stock (SourcePackageDeps -> SourcePackageDeps -> Bool (SourcePackageDeps -> SourcePackageDeps -> Bool) -> (SourcePackageDeps -> SourcePackageDeps -> Bool) -> Eq SourcePackageDeps forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: SourcePackageDeps -> SourcePackageDeps -> Bool == :: SourcePackageDeps -> SourcePackageDeps -> Bool $c/= :: SourcePackageDeps -> SourcePackageDeps -> Bool /= :: SourcePackageDeps -> SourcePackageDeps -> Bool Eq, Int -> SourcePackageDeps -> ShowS [SourcePackageDeps] -> ShowS SourcePackageDeps -> String (Int -> SourcePackageDeps -> ShowS) -> (SourcePackageDeps -> String) -> ([SourcePackageDeps] -> ShowS) -> Show SourcePackageDeps forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> SourcePackageDeps -> ShowS showsPrec :: Int -> SourcePackageDeps -> ShowS $cshow :: SourcePackageDeps -> String show :: SourcePackageDeps -> String $cshowList :: [SourcePackageDeps] -> ShowS showList :: [SourcePackageDeps] -> ShowS Show, (forall x. SourcePackageDeps -> Rep SourcePackageDeps x) -> (forall x. Rep SourcePackageDeps x -> SourcePackageDeps) -> Generic SourcePackageDeps forall x. Rep SourcePackageDeps x -> SourcePackageDeps forall x. SourcePackageDeps -> Rep SourcePackageDeps x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. SourcePackageDeps -> Rep SourcePackageDeps x from :: forall x. SourcePackageDeps -> Rep SourcePackageDeps x $cto :: forall x. Rep SourcePackageDeps x -> SourcePackageDeps to :: forall x. Rep SourcePackageDeps x -> SourcePackageDeps Generic) deriving newtype (NonEmpty SourcePackageDeps -> SourcePackageDeps SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps (SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps) -> (NonEmpty SourcePackageDeps -> SourcePackageDeps) -> (forall b. Integral b => b -> SourcePackageDeps -> SourcePackageDeps) -> Semigroup SourcePackageDeps forall b. Integral b => b -> SourcePackageDeps -> SourcePackageDeps forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a $c<> :: SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps <> :: SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps $csconcat :: NonEmpty SourcePackageDeps -> SourcePackageDeps sconcat :: NonEmpty SourcePackageDeps -> SourcePackageDeps $cstimes :: forall b. Integral b => b -> SourcePackageDeps -> SourcePackageDeps stimes :: forall b. Integral b => b -> SourcePackageDeps -> SourcePackageDeps Semigroup, Semigroup SourcePackageDeps SourcePackageDeps Semigroup SourcePackageDeps -> SourcePackageDeps -> (SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps) -> ([SourcePackageDeps] -> SourcePackageDeps) -> Monoid SourcePackageDeps [SourcePackageDeps] -> SourcePackageDeps SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps forall a. Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a $cmempty :: SourcePackageDeps mempty :: SourcePackageDeps $cmappend :: SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps mappend :: SourcePackageDeps -> SourcePackageDeps -> SourcePackageDeps $cmconcat :: [SourcePackageDeps] -> SourcePackageDeps mconcat :: [SourcePackageDeps] -> SourcePackageDeps Monoid, Int -> [Item SourcePackageDeps] -> SourcePackageDeps [Item SourcePackageDeps] -> SourcePackageDeps SourcePackageDeps -> [Item SourcePackageDeps] ([Item SourcePackageDeps] -> SourcePackageDeps) -> (Int -> [Item SourcePackageDeps] -> SourcePackageDeps) -> (SourcePackageDeps -> [Item SourcePackageDeps]) -> IsList SourcePackageDeps forall l. ([Item l] -> l) -> (Int -> [Item l] -> l) -> (l -> [Item l]) -> IsList l $cfromList :: [Item SourcePackageDeps] -> SourcePackageDeps fromList :: [Item SourcePackageDeps] -> SourcePackageDeps $cfromListN :: Int -> [Item SourcePackageDeps] -> SourcePackageDeps fromListN :: Int -> [Item SourcePackageDeps] -> SourcePackageDeps $ctoList :: SourcePackageDeps -> [Item SourcePackageDeps] toList :: SourcePackageDeps -> [Item SourcePackageDeps] IsList) instance NMap SourcePackageDeps Version [Dep] LookupMonoid where instance Pretty SourcePackageDeps where pretty :: SourcePackageDeps -> Doc pretty = ([Dep] -> Doc) -> SourcePackageDeps -> Doc forall k map v sort. (Pretty k, NMap map k v sort) => (v -> Doc) -> map -> Doc nPrettyWith [Dep] -> Doc forall (t :: * -> *) a. (Pretty a, Foldable t) => t a -> Doc prettyL newtype SourcePackages = SourcePackages (Map PackageName SourcePackageDeps) deriving stock (SourcePackages -> SourcePackages -> Bool (SourcePackages -> SourcePackages -> Bool) -> (SourcePackages -> SourcePackages -> Bool) -> Eq SourcePackages forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: SourcePackages -> SourcePackages -> Bool == :: SourcePackages -> SourcePackages -> Bool $c/= :: SourcePackages -> SourcePackages -> Bool /= :: SourcePackages -> SourcePackages -> Bool Eq, Int -> SourcePackages -> ShowS [SourcePackages] -> ShowS SourcePackages -> String (Int -> SourcePackages -> ShowS) -> (SourcePackages -> String) -> ([SourcePackages] -> ShowS) -> Show SourcePackages forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> SourcePackages -> ShowS showsPrec :: Int -> SourcePackages -> ShowS $cshow :: SourcePackages -> String show :: SourcePackages -> String $cshowList :: [SourcePackages] -> ShowS showList :: [SourcePackages] -> ShowS Show, (forall x. SourcePackages -> Rep SourcePackages x) -> (forall x. Rep SourcePackages x -> SourcePackages) -> Generic SourcePackages forall x. Rep SourcePackages x -> SourcePackages forall x. SourcePackages -> Rep SourcePackages x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. SourcePackages -> Rep SourcePackages x from :: forall x. SourcePackages -> Rep SourcePackages x $cto :: forall x. Rep SourcePackages x -> SourcePackages to :: forall x. Rep SourcePackages x -> SourcePackages Generic) deriving newtype (NonEmpty SourcePackages -> SourcePackages SourcePackages -> SourcePackages -> SourcePackages (SourcePackages -> SourcePackages -> SourcePackages) -> (NonEmpty SourcePackages -> SourcePackages) -> (forall b. Integral b => b -> SourcePackages -> SourcePackages) -> Semigroup SourcePackages forall b. Integral b => b -> SourcePackages -> SourcePackages forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a $c<> :: SourcePackages -> SourcePackages -> SourcePackages <> :: SourcePackages -> SourcePackages -> SourcePackages $csconcat :: NonEmpty SourcePackages -> SourcePackages sconcat :: NonEmpty SourcePackages -> SourcePackages $cstimes :: forall b. Integral b => b -> SourcePackages -> SourcePackages stimes :: forall b. Integral b => b -> SourcePackages -> SourcePackages Semigroup, Semigroup SourcePackages SourcePackages Semigroup SourcePackages -> SourcePackages -> (SourcePackages -> SourcePackages -> SourcePackages) -> ([SourcePackages] -> SourcePackages) -> Monoid SourcePackages [SourcePackages] -> SourcePackages SourcePackages -> SourcePackages -> SourcePackages forall a. Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a $cmempty :: SourcePackages mempty :: SourcePackages $cmappend :: SourcePackages -> SourcePackages -> SourcePackages mappend :: SourcePackages -> SourcePackages -> SourcePackages $cmconcat :: [SourcePackages] -> SourcePackages mconcat :: [SourcePackages] -> SourcePackages Monoid, Int -> [Item SourcePackages] -> SourcePackages [Item SourcePackages] -> SourcePackages SourcePackages -> [Item SourcePackages] ([Item SourcePackages] -> SourcePackages) -> (Int -> [Item SourcePackages] -> SourcePackages) -> (SourcePackages -> [Item SourcePackages]) -> IsList SourcePackages forall l. ([Item l] -> l) -> (Int -> [Item l] -> l) -> (l -> [Item l]) -> IsList l $cfromList :: [Item SourcePackages] -> SourcePackages fromList :: [Item SourcePackages] -> SourcePackages $cfromListN :: Int -> [Item SourcePackages] -> SourcePackages fromListN :: Int -> [Item SourcePackages] -> SourcePackages $ctoList :: SourcePackages -> [Item SourcePackages] toList :: SourcePackages -> [Item SourcePackages] IsList) instance NMap SourcePackages PackageName SourcePackageDeps LookupMaybe where instance Pretty SourcePackages where pretty :: SourcePackages -> Doc pretty = SourcePackages -> Doc forall k v map sort. (Pretty k, Pretty v, NMap map k v sort) => map -> Doc nPretty1 newtype SourcePackageVersions = SourcePackageVersions (Map PackageName [Version]) deriving stock (SourcePackageVersions -> SourcePackageVersions -> Bool (SourcePackageVersions -> SourcePackageVersions -> Bool) -> (SourcePackageVersions -> SourcePackageVersions -> Bool) -> Eq SourcePackageVersions forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: SourcePackageVersions -> SourcePackageVersions -> Bool == :: SourcePackageVersions -> SourcePackageVersions -> Bool $c/= :: SourcePackageVersions -> SourcePackageVersions -> Bool /= :: SourcePackageVersions -> SourcePackageVersions -> Bool Eq, Int -> SourcePackageVersions -> ShowS [SourcePackageVersions] -> ShowS SourcePackageVersions -> String (Int -> SourcePackageVersions -> ShowS) -> (SourcePackageVersions -> String) -> ([SourcePackageVersions] -> ShowS) -> Show SourcePackageVersions forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> SourcePackageVersions -> ShowS showsPrec :: Int -> SourcePackageVersions -> ShowS $cshow :: SourcePackageVersions -> String show :: SourcePackageVersions -> String $cshowList :: [SourcePackageVersions] -> ShowS showList :: [SourcePackageVersions] -> ShowS Show, (forall x. SourcePackageVersions -> Rep SourcePackageVersions x) -> (forall x. Rep SourcePackageVersions x -> SourcePackageVersions) -> Generic SourcePackageVersions forall x. Rep SourcePackageVersions x -> SourcePackageVersions forall x. SourcePackageVersions -> Rep SourcePackageVersions x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. SourcePackageVersions -> Rep SourcePackageVersions x from :: forall x. SourcePackageVersions -> Rep SourcePackageVersions x $cto :: forall x. Rep SourcePackageVersions x -> SourcePackageVersions to :: forall x. Rep SourcePackageVersions x -> SourcePackageVersions Generic) deriving newtype (NonEmpty SourcePackageVersions -> SourcePackageVersions SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions (SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions) -> (NonEmpty SourcePackageVersions -> SourcePackageVersions) -> (forall b. Integral b => b -> SourcePackageVersions -> SourcePackageVersions) -> Semigroup SourcePackageVersions forall b. Integral b => b -> SourcePackageVersions -> SourcePackageVersions forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a $c<> :: SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions <> :: SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions $csconcat :: NonEmpty SourcePackageVersions -> SourcePackageVersions sconcat :: NonEmpty SourcePackageVersions -> SourcePackageVersions $cstimes :: forall b. Integral b => b -> SourcePackageVersions -> SourcePackageVersions stimes :: forall b. Integral b => b -> SourcePackageVersions -> SourcePackageVersions Semigroup, Semigroup SourcePackageVersions SourcePackageVersions Semigroup SourcePackageVersions -> SourcePackageVersions -> (SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions) -> ([SourcePackageVersions] -> SourcePackageVersions) -> Monoid SourcePackageVersions [SourcePackageVersions] -> SourcePackageVersions SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions forall a. Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a $cmempty :: SourcePackageVersions mempty :: SourcePackageVersions $cmappend :: SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions mappend :: SourcePackageVersions -> SourcePackageVersions -> SourcePackageVersions $cmconcat :: [SourcePackageVersions] -> SourcePackageVersions mconcat :: [SourcePackageVersions] -> SourcePackageVersions Monoid, Int -> [Item SourcePackageVersions] -> SourcePackageVersions [Item SourcePackageVersions] -> SourcePackageVersions SourcePackageVersions -> [Item SourcePackageVersions] ([Item SourcePackageVersions] -> SourcePackageVersions) -> (Int -> [Item SourcePackageVersions] -> SourcePackageVersions) -> (SourcePackageVersions -> [Item SourcePackageVersions]) -> IsList SourcePackageVersions forall l. ([Item l] -> l) -> (Int -> [Item l] -> l) -> (l -> [Item l]) -> IsList l $cfromList :: [Item SourcePackageVersions] -> SourcePackageVersions fromList :: [Item SourcePackageVersions] -> SourcePackageVersions $cfromListN :: Int -> [Item SourcePackageVersions] -> SourcePackageVersions fromListN :: Int -> [Item SourcePackageVersions] -> SourcePackageVersions $ctoList :: SourcePackageVersions -> [Item SourcePackageVersions] toList :: SourcePackageVersions -> [Item SourcePackageVersions] IsList) instance NMap SourcePackageVersions PackageName [Version] LookupMaybe where instance Pretty SourcePackageVersions where pretty :: SourcePackageVersions -> Doc pretty = ([Version] -> Doc) -> SourcePackageVersions -> Doc forall k map v sort. (Pretty k, NMap map k v sort) => (v -> Doc) -> map -> Doc nPrettyWith [Version] -> Doc forall (t :: * -> *) a. (Pretty a, Foldable t) => t a -> Doc prettyL