HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

ModuleCabal-3.12.1.0Haskell2010

Distribution.Utils.NubList

  • 2 types
  • 6 values
  • PackageCabal-3.12.1.0
  • Exports8
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceNubList.hs
newtypenewtype NubList a
#

NubList : A de-duplicated list that maintains the original order.

Instances9Eq, Read, Show, Generic, Semigroup, Monoid, …
  • Eq a => Eq (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • (Ord a, Read a) => Read (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • Show a => Show (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • Generic (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • Ord a => Semigroup (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • Ord a => Monoid (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList

    Monoid operations on NubLists. For a valid Monoid instance we need to satisfy the required monoid laws; identity, associativity and closure.

    Identity : by inspection: mempty mappend NubList xs == NubList xs mappend mempty

    Associativity : by inspection: (NubList xs mappend NubList ys) mappend NubList zs == NubList xs mappend (NubList ys mappend NubList zs)

    Closure : appending two lists of type a and removing duplicates obviously does not change the type.

  • (Ord a, Binary a) => Binary (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList

    Binary instance for 'NubList a' is the same as for '[a]'. For put, we just pull off constructor and put the list. For get, we get the list and make a NubList out of it using toNubList.

  • Structured a => Structured (NubList a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • type Rep (NubList a) = D1 ('MetaData "NubList" "Distribution.Utils.NubList" "Cabal-3.12.1.0-fc60" 'True) (C1 ('MetaCons "NubList" 'PrefixI 'True) (S1 ('MetaSel ('Just "fromNubList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
newtypenewtype NubListR a
#

NubListR : A right-biased version of NubList. That is toNubListR ["-XNoFoo", "-XFoo", "-XNoFoo"] will result in ["-XFoo", "-XNoFoo"], unlike the normal NubList, which is left-biased. Built on top of ordNubRight and listUnionRight.

Instances5Eq, Read, Show, Semigroup, Monoid
  • Eq a => Eq (NubListR a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • (Ord a, Read a) => Read (NubListR a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • Show a => Show (NubListR a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • Ord a => Semigroup (NubListR a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList
  • Ord a => Monoid (NubListR a)Defined in Cabal-3.12.1.0 · Distribution.Utils.NubList