Hoogle Search

Within LTS Haskell 24.45 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. nonEmptyMap :: Map k a -> Maybe (NEMap k a)

    nonempty-containers Data.Map.NonEmpty

    O(log n). Smart constructor for an NEMap from a Map. Returns Nothing if the Map was originally actually empty, and Just n with an NEMap, if the Map was not empty. nonEmptyMap and maybe empty toMap form an isomorphism: they are perfect structure-preserving inverses of eachother. See IsNonEmpty for a pattern synonym that lets you "match on" the possiblity of a Map being an NEMap.

    nonEmptyMap (Data.Map.fromList [(3,"a"), (5,"b")]) == Just (fromList ((3,"a") :| [(5,"b")]))
    

  2. toMap :: NEMap k a -> Map k a

    nonempty-containers Data.Map.NonEmpty

    O(log n). Convert a non-empty map back into a normal possibly-empty map, for usage with functions that expect Map. Can be thought of as "obscuring" the non-emptiness of the map in its type. See the IsNotEmpty pattern. nonEmptyMap and maybe empty toMap form an isomorphism: they are perfect structure-preserving inverses of eachother.

    toMap (fromList ((3,"a") :| [(5,"b")])) == Data.Map.fromList [(3,"a"), (5,"b")]
    

  3. unsafeFromMap :: Map k a -> NEMap k a

    nonempty-containers Data.Map.NonEmpty

    O(log n). Unsafe version of nonEmptyMap. Coerces a Map into an NEMap, but is undefined (throws a runtime exception when evaluation is attempted) for an empty Map.

  4. data NEMap k a

    nonempty-containers Data.Map.NonEmpty.Internal

    A non-empty (by construction) map from keys k to values a. At least one key-value pair exists in an NEMap k v at all times. Functions that take an NEMap can safely operate on it with the assumption that it has at least one key-value pair. Functions that return an NEMap provide an assurance that the result has at least one key-value pair. Data.Map.NonEmpty re-exports the API of Data.Map, faithfully reproducing asymptotics, typeclass constraints, and semantics. Functions that ensure that input and output maps are both non-empty (like insert) return NEMap, but functions that might potentially return an empty map (like delete) return a Map instead. You can directly construct an NEMap with the API from Data.Map.NonEmpty; it's more or less the same as constructing a normal Map, except you don't have access to empty. There are also a few ways to construct an NEMap from a Map:

    1. The nonEmptyMap smart constructor will convert a Map k a into a Maybe (NEMap k a), returning Nothing if the original Map was empty.
    2. You can use the insertMap family of functions to insert a value into a Map to create a guaranteed NEMap.
    3. You can use the IsNonEmpty and IsEmpty patterns to "pattern match" on a Map to reveal it as either containing a NEMap or an empty map.
    4. withNonEmpty offers a continuation-based interface for deconstructing a Map and treating it as if it were an NEMap.
    You can convert an NEMap into a Map with toMap or IsNonEmpty, essentially "obscuring" the non-empty property from the type.

  5. NEMap :: k -> a -> !Map k a -> NEMap k a

    nonempty-containers Data.Map.NonEmpty.Internal

    No documentation available.

  6. foldMapWithKey :: Semigroup m => (k -> a -> m) -> NEMap k a -> m

    nonempty-containers Data.Map.NonEmpty.Internal

    O(n). Fold the keys and values in the map using the given semigroup, such that

    foldMapWithKey f = fold1 . mapWithKey f
    
    This can be an asymptotically faster than foldrWithKey or foldlWithKey for some monoids.

  7. insertMaxMap :: k -> a -> Map k a -> Map k a

    nonempty-containers Data.Map.NonEmpty.Internal

    O(log n). Insert new key and value into a map where keys are strictly less than the new key. That is, the new key must be strictly greater than all keys present in the Map. /The precondition is not checked./ While this has the same asymptotics as Data.Map.insert, it saves a constant factor for key comparison (so may be helpful if comparison is expensive) and also does not require an Ord instance for the key type.

  8. insertMinMap :: k -> a -> Map k a -> Map k a

    nonempty-containers Data.Map.NonEmpty.Internal

    O(log n). Insert new key and value into a map where keys are strictly greater than the new key. That is, the new key must be strictly less than all keys present in the Map. /The precondition is not checked./ While this has the same asymptotics as Data.Map.insert, it saves a constant factor for key comparison (so may be helpful if comparison is expensive) and also does not require an Ord instance for the key type.

  9. nemMap :: NEMap k a -> !Map k a

    nonempty-containers Data.Map.NonEmpty.Internal

    No documentation available.

  10. nonEmptyMap :: Map k a -> Maybe (NEMap k a)

    nonempty-containers Data.Map.NonEmpty.Internal

    O(log n). Smart constructor for an NEMap from a Map. Returns Nothing if the Map was originally actually empty, and Just n with an NEMap, if the Map was not empty. nonEmptyMap and maybe empty toMap form an isomorphism: they are perfect structure-preserving inverses of eachother. See IsNonEmpty for a pattern synonym that lets you "match on" the possiblity of a Map being an NEMap.

    nonEmptyMap (Data.Map.fromList [(3,"a"), (5,"b")]) == Just (fromList ((3,"a") :| [(5,"b")]))
    

Page 959 of many | Previous | Next