All flags are monoids, they come in two flavours:
list flags eg
--ghc-option=foo --ghc-option=bargives us all the values ["foo", "bar"]
singular value flags, eg:
--enable-foo --disable-foogives us Just False
So, this Flag type is for the latter singular kind of flag. Its monoid instance gives us the behaviour where it starts out as NoFlag and later flags override earlier ones.
Isomorphic to Maybe a.
Instances15Functor, Applicative, Foldable, Traversable, Bounded, Enum, …
Functor FlagDefined in Cabal-3.12.1.0 · Distribution.Simple.FlagApplicative FlagDefined in Cabal-3.12.1.0 · Distribution.Simple.FlagFoldable FlagDefined in Cabal-3.12.1.0 · Distribution.Simple.FlagTraversable FlagDefined in Cabal-3.12.1.0 · Distribution.Simple.FlagBounded a => Bounded (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagEnum a => Enum (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagEq a => Eq (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagRead a => Read (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagShow a => Show (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagGeneric (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagSemigroup (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagMonoid (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagBinary a => Binary (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.FlagStructured a => Structured (Flag a)Defined in Cabal-3.12.1.0 · Distribution.Simple.Flagtype Rep (Flag a) = D1 ('MetaDataDefined in Cabal-3.12.1.0 · Distribution.Simple.Flag"Flag"
"Distribution.Simple.Flag"
"Cabal-3.12.1.0-fc60"
'False) (C1 ('MetaCons"Flag"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons"NoFlag"
'PrefixI 'False) U1)