HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Moduleth-desugar-1.17Haskell2010

Language.Haskell.TH.Desugar.OMap

An OMap behaves much like a Map, with all the same asymptotics, but also remembers the order that keys were inserted.

This module offers a simplified version of the Data.Map.Ordered API that assumes left-biased indices everywhere and uses a different Semigroup instance (the one in this module uses (<>) = union) and Monoid instance (the one in this module uses mappend = union).

  • 2 types
  • 22 values
  • Packageth-desugar-1.17
  • Exports24
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceOMap.hs
newtypenewtype OMap k v
#

An ordered map whose insertPre, insertPost, intersection, intersectionWithKey, union, and unionWithKey operations are biased towards leftmost indices when when breaking ties between keys.

Constructors

Instances10Functor, Foldable, Traversable, Eq, Data, Ord, …
  • Functor (OMap k)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • Foldable (OMap k)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • Ord k => Traversable (OMap k)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • (Eq k, Eq v) => Eq (OMap k v)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • (Data k, Data v, Ord k) => Data (OMap k v)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • (Ord k, Ord v) => Ord (OMap k v)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • (Ord k, Read k, Read v) => Read (OMap k v)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • (Show k, Show v) => Show (OMap k v)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • Ord k => Semigroup (OMap k v)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap
  • Ord k => Monoid (OMap k v)Defined in th-desugar-1.17 · Language.Haskell.TH.Desugar.OMap

Trivial maps

2 declarations

Insertion

4 declarations
valueinsertPre :: Ord k => k -> v -> OMap k v -> OMap k v
#

The value's index will be lower than the indices of the values in the OSet.

valueinsertPost :: Ord k => OMap k v -> k -> v -> OMap k v
#

The value's index will be higher than the indices of the values in the OSet.

Deletion

5 declarations

Query

5 declarations

Indexing

3 declarations
typetype Index = Int
#

A 0-based index, much like the indices used by lists' !! operation. All indices are with respect to insertion order.

List conversions

3 declarations

Map conversion

1 declaration