cabal-install-3.8.1.0: The command-line interface for Cabal and Hackage.
Safe HaskellNone
LanguageHaskell2010

Distribution.Client.Types.AllowNewer

Synopsis

Documentation

newtype AllowNewer Source #

RelaxDeps in the context of upper bounds (i.e. for --allow-newer flag)

Constructors

AllowNewer 

Instances

Instances details
Eq AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Read AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Show AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Generic AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Associated Types

type Rep AllowNewer :: Type -> Type #

Semigroup AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Monoid AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Binary AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Structured AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep AllowNewer Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep AllowNewer = D1 ('MetaData "AllowNewer" "Distribution.Client.Types.AllowNewer" "cabal-install-3.8.1.0-7iNu5HGLMqL9QLfLAUJqbd" 'True) (C1 ('MetaCons "AllowNewer" 'PrefixI 'True) (S1 ('MetaSel ('Just "unAllowNewer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RelaxDeps)))

newtype AllowOlder Source #

RelaxDeps in the context of lower bounds (i.e. for --allow-older flag)

Constructors

AllowOlder 

Instances

Instances details
Eq AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Read AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Show AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Generic AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Associated Types

type Rep AllowOlder :: Type -> Type #

Semigroup AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Monoid AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Binary AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Structured AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep AllowOlder Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep AllowOlder = D1 ('MetaData "AllowOlder" "Distribution.Client.Types.AllowNewer" "cabal-install-3.8.1.0-7iNu5HGLMqL9QLfLAUJqbd" 'True) (C1 ('MetaCons "AllowOlder" 'PrefixI 'True) (S1 ('MetaSel ('Just "unAllowOlder") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RelaxDeps)))

data RelaxDeps Source #

Generic data type for policy when relaxing bounds in dependencies. Don't use this directly: use AllowOlder or AllowNewer depending on whether or not you are relaxing an lower or upper bound (respectively).

Constructors

RelaxDepsSome [RelaxedDep]

Ignore upper (resp. lower) bounds in some (or no) dependencies on the given packages.

RelaxDepsSome [] is the default, i.e. honor the bounds in all dependencies, never choose versions newer (resp. older) than allowed.

RelaxDepsAll

Ignore upper (resp. lower) bounds in dependencies on all packages.

Note: This is should be semantically equivalent to

RelaxDepsSome [RelaxedDep RelaxDepScopeAll RelaxDepModNone RelaxDepSubjectAll]

(TODO: consider normalising RelaxDeps and/or RelaxedDep)

Instances

Instances details
Eq RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Read RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Show RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Generic RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Associated Types

type Rep RelaxDeps :: Type -> Type #

Semigroup RelaxDeps Source #

RelaxDepsAll is the absorbing element

Instance details

Defined in Distribution.Client.Types.AllowNewer

Monoid RelaxDeps Source #

RelaxDepsSome [] is the identity element

Instance details

Defined in Distribution.Client.Types.AllowNewer

Binary RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Structured RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Parsec RelaxDeps Source #
>>> simpleParsec "all" :: Maybe RelaxDeps
Just RelaxDepsAll
>>> simpleParsec "none" :: Maybe RelaxDeps
Just (RelaxDepsSome [])
>>> simpleParsec "*, *" :: Maybe RelaxDeps
Just RelaxDepsAll
>>> simpleParsec "*:*" :: Maybe RelaxDeps
Just RelaxDepsAll
>>> simpleParsec "foo:bar, quu:puu" :: Maybe RelaxDeps
Just (RelaxDepsSome [RelaxedDep (RelaxDepScopePackage (PackageName "foo")) RelaxDepModNone (RelaxDepSubjectPkg (PackageName "bar")),RelaxedDep (RelaxDepScopePackage (PackageName "quu")) RelaxDepModNone (RelaxDepSubjectPkg (PackageName "puu"))])

This is not a glitch, even it looks like:

>>> simpleParsec ", all" :: Maybe RelaxDeps
Just RelaxDepsAll
>>> simpleParsec "" :: Maybe RelaxDeps
Nothing
Instance details

Defined in Distribution.Client.Types.AllowNewer

Methods

parsec :: CabalParsing m => m RelaxDeps #

Pretty RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDeps Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDeps = D1 ('MetaData "RelaxDeps" "Distribution.Client.Types.AllowNewer" "cabal-install-3.8.1.0-7iNu5HGLMqL9QLfLAUJqbd" 'False) (C1 ('MetaCons "RelaxDepsSome" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RelaxedDep])) :+: C1 ('MetaCons "RelaxDepsAll" 'PrefixI 'False) (U1 :: Type -> Type))

mkRelaxDepSome :: [RelaxedDep] -> RelaxDeps Source #

A smarter RelaxedDepsSome, *:* is the same as all.

data RelaxDepMod Source #

Modifier for dependency relaxation

Constructors

RelaxDepModNone

Default semantics

RelaxDepModCaret

Apply relaxation only to ^>= constraints

Instances

Instances details
Eq RelaxDepMod Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Read RelaxDepMod Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Show RelaxDepMod Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Generic RelaxDepMod Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Associated Types

type Rep RelaxDepMod :: Type -> Type #

Binary RelaxDepMod Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Structured RelaxDepMod Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDepMod Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDepMod = D1 ('MetaData "RelaxDepMod" "Distribution.Client.Types.AllowNewer" "cabal-install-3.8.1.0-7iNu5HGLMqL9QLfLAUJqbd" 'False) (C1 ('MetaCons "RelaxDepModNone" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RelaxDepModCaret" 'PrefixI 'False) (U1 :: Type -> Type))

data RelaxDepScope Source #

Specify the scope of a relaxation, i.e. limit which depending packages are allowed to have their version constraints relaxed.

Constructors

RelaxDepScopeAll

Apply relaxation in any package

RelaxDepScopePackage !PackageName

Apply relaxation to in all versions of a package

RelaxDepScopePackageId !PackageId

Apply relaxation to a specific version of a package only

Instances

Instances details
Eq RelaxDepScope Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Read RelaxDepScope Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Show RelaxDepScope Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Generic RelaxDepScope Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Associated Types

type Rep RelaxDepScope :: Type -> Type #

Binary RelaxDepScope Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Structured RelaxDepScope Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDepScope Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDepScope = D1 ('MetaData "RelaxDepScope" "Distribution.Client.Types.AllowNewer" "cabal-install-3.8.1.0-7iNu5HGLMqL9QLfLAUJqbd" 'False) (C1 ('MetaCons "RelaxDepScopeAll" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RelaxDepScopePackage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PackageName)) :+: C1 ('MetaCons "RelaxDepScopePackageId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PackageId))))

data RelaxDepSubject Source #

Express whether to relax bounds on all packages, or a single package

Instances

Instances details
Eq RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Ord RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Read RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Show RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Generic RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Associated Types

type Rep RelaxDepSubject :: Type -> Type #

Binary RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Structured RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Parsec RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Pretty RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDepSubject Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxDepSubject = D1 ('MetaData "RelaxDepSubject" "Distribution.Client.Types.AllowNewer" "cabal-install-3.8.1.0-7iNu5HGLMqL9QLfLAUJqbd" 'False) (C1 ('MetaCons "RelaxDepSubjectAll" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RelaxDepSubjectPkg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PackageName)))

data RelaxedDep Source #

Dependencies can be relaxed either for all packages in the install plan, or only for some packages.

Instances

Instances details
Eq RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Read RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Show RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Generic RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Associated Types

type Rep RelaxedDep :: Type -> Type #

Binary RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Structured RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Parsec RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

Methods

parsec :: CabalParsing m => m RelaxedDep #

Pretty RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxedDep Source # 
Instance details

Defined in Distribution.Client.Types.AllowNewer

type Rep RelaxedDep = D1 ('MetaData "RelaxedDep" "Distribution.Client.Types.AllowNewer" "cabal-install-3.8.1.0-7iNu5HGLMqL9QLfLAUJqbd" 'False) (C1 ('MetaCons "RelaxedDep" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RelaxDepScope) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RelaxDepMod) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RelaxDepSubject))))

isRelaxDeps :: RelaxDeps -> Bool Source #

Return True if RelaxDeps specifies a non-empty set of relaxations

Equivalent to isRelaxDeps = (/= mempty)