Apache-2.0 licensed by Jonathan Knowles
Maintained by [email protected]
This version can be pinned in stack with:monoidmap-internal-0.4.0.0@sha256:1431daf73da9a0edc585ca943b8e0192a9ea4b707bb90fa53368366d024abf7e,2931
Used by 1 package in nightly-2026-10-25(full list with versions):

monoidmap-internal

Latest Release Development Branch

Internal support for the monoidmap package.

Changes

0.4.0.0

  • Revised the module structure of the package, replacing the Data.MonoidMap.Internal module with the following modules:

    • Data.MonoidMap.Internal.NonNull
    • Data.MonoidMap.Internal.NonNullMap
    • Data.MonoidMap.Internal.NonNullMap.FromMap
    • Data.MonoidMap.Internal.NonNullMap.FromMapWith

    The new structure has the following aims:

    • To confine the data constructor of NonNull to two small private modules, making the code that maintains the NonNull invariant a little easier to audit.

    • To dedicate each public module to a single type, with functions named for qualified import. Several functions have been renamed accordingly: for example, maybeNonNull is now NonNull.nonNull, and fromNonNullMap is now NonNullMap.toMap.

    • To move the alternative fromMap* and fromMapWith* implementations, which exist only for benchmarking, into their own modules, so that they no longer clutter the main API.

  • Changed fromMap, fromMapWith, and toMap to accept or return values of type NonNullMap k v instead of Map k (NonNull v).

  • Added documentation for the NonNull and NonNullMap types and their functions.

0.3.0.0

  • Moved the MonoidMap type, its instances, and all of its functions to the Data.MonoidMap module of the monoidmap package. These are no longer exported by Data.MonoidMap.Internal.

  • Removed the Data.MonoidMap.Internal.Unsafe module, including the unsafeFromMap function.

  • Changed fromMap, fromMapWith, and their alternative implementations to return values of type Map k (NonNull v) instead of MonoidMap k v.

  • Stopped exporting the data constructor of NonNull, and removed its getNonNull field.

  • Changed the role of the type parameter of NonNull from representational to nominal.

  • Added the NonNullMap type, and exported the maybeNonNull, applyNonNull, applyNonNull2, and fromNonNullMap functions.

  • Made NonNull an instance of NFData.

  • Moved the test suite to the monoidmap package.

  • Removed the dependency on groups.

0.2.0.0

  • Changed the role of the value type parameter of MonoidMap from representational to nominal. This prevents coercions between MonoidMap types with different value types, which could produce maps that contain mempty values.

    This is a breaking change: code that performs such coercions will no longer compile.

  • Moved the RecoveredMap module to the monoidmap-examples package.

0.1.2.0

  • Improved the performance of fromMap, particularly for maps that contain no mempty values. This also benefits fromList, fromListWith and fromSet, which are defined in terms of fromMap.

0.1.1.0

  • Added functions nullifyKeysIn and nullifyKeysNotIn to MonoidMap.

0.1.0.4

  • Updated links to source repository in package metadata.

0.1.0.3

  • Revised version bounds of dependencies.

0.1.0.2

  • Added support for GHC 9.14.
  • Revised version bounds of dependencies.

0.1.0.1

  • Revised version bounds of dependencies.

0.1.0.0

  • Made MonoidMap an instance of both Typeable and Data.

0.0.0.1

  • Revised version bounds of dependencies.

0.0.0.0

  • Initial release.