packages feed

monoidmap-0.0.3.0: monoidmap.cabal

cabal-version:  3.0
name:           monoidmap
version:        0.0.3.0
bug-reports:    https://github.com/jonathanknowles/monoidmap/issues
license:        Apache-2.0
license-file:   LICENSE
author:         Jonathan Knowles
maintainer:     mail@jonathanknowles.net
copyright:      2022–2025 Jonathan Knowles
category:       Data Structures
synopsis:       Monoidal map type
description:
    Monoidal map type with support for semigroup and monoid subclasses.

extra-doc-files:
    CHANGELOG.md
    README.md

common dependency-base
    build-depends:base                          >= 4.14.3.0   && < 4.22
common dependency-containers
    build-depends:containers                    >= 0.6.5.1    && < 0.8
common dependency-deepseq
    build-depends:deepseq                       >= 1.4.4.0    && < 1.6
common dependency-groups
    build-depends:groups                        >= 0.5.3      && < 0.6
common dependency-hspec
    build-depends:hspec                         >= 2.10.9     && < 2.12
common dependency-monoid-subclasses
    build-depends:monoid-subclasses             >= 1.2.3      && < 1.3
common dependency-nonempty-containers
    build-depends:nonempty-containers           >= 0.3.4.4    && < 0.4
common dependency-nothunks
    build-depends:nothunks                      >= 0.1.3      && < 0.4
common dependency-pretty-show
    build-depends:pretty-show                   >= 1.10       && < 1.11
common dependency-QuickCheck
    build-depends:QuickCheck                    >= 2.14.2     && < 2.16
common dependency-quickcheck-classes
    build-depends:quickcheck-classes            >= 0.6.5.0    && < 0.7
common dependency-quickcheck-groups
    build-depends:quickcheck-groups             >= 0.0.0.0    && < 0.1
common dependency-quickcheck-instances
    build-depends:quickcheck-instances          >= 0.3.28     && < 0.4
common dependency-quickcheck-monoid-subclasses
    build-depends:quickcheck-monoid-subclasses  >= 0.3.0.0    && < 0.4
common dependency-tasty-bench
    build-depends:tasty-bench                   >= 0.3.2      && < 0.5
common dependency-tasty-hunit
    build-depends:tasty-hunit                   >= 0.10.0.3   && < 0.11
common dependency-text
    build-depends:text                          >= 1.2.4.1    && < 2.2

common extensions
    default-extensions:
        BangPatterns
        ConstraintKinds
        DerivingStrategies
        DerivingVia
        FlexibleContexts
        FlexibleInstances
        GeneralizedNewtypeDeriving
        LambdaCase
        MultiParamTypeClasses
        NoImplicitPrelude
        ScopedTypeVariables
        TupleSections
        TypeApplications
        TypeFamilies
        TypeOperators
        ViewPatterns

source-repository head
    type: git
    location: https://github.com/jonathanknowles/monoidmap

library
    import:
      , dependency-base
      , dependency-containers
      , dependency-groups
      , dependency-monoid-subclasses
      , extensions
    hs-source-dirs:
        src/public
    exposed-modules:
        Data.MonoidMap
    default-language:
        Haskell2010
    build-depends:
      , internal

library examples
    import:
      , dependency-base
      , dependency-containers
      , dependency-deepseq
      , dependency-monoid-subclasses
      , dependency-nonempty-containers
      , extensions
    hs-source-dirs:
        src/examples
    exposed-modules:
        Examples.MultiMap
        Examples.MultiMap.Class
        Examples.MultiMap.Instances.MultiMap1
        Examples.MultiMap.Instances.MultiMap2
        Examples.MultiMap.Instances.MultiMap3
        Examples.MultiMap.Instances.MultiMap4
        Examples.MultiSet
        Examples.NestedMonoidMap
        Examples.RecoveredMap
    default-language:
        Haskell2010
    build-depends:
      , monoidmap

library internal
    import:
      , dependency-base
      , dependency-containers
      , dependency-deepseq
      , dependency-groups
      , dependency-monoid-subclasses
      , dependency-nothunks
      , extensions
    hs-source-dirs:
        src/internal
    exposed-modules:
        Data.MonoidMap.Internal
        Data.MonoidMap.Unsafe
    default-language:
        Haskell2010

test-suite test
    import:
      , dependency-base
      , dependency-containers
      , dependency-groups
      , dependency-hspec
      , dependency-monoid-subclasses
      , dependency-pretty-show
      , dependency-QuickCheck
      , dependency-quickcheck-classes
      , dependency-quickcheck-groups
      , dependency-quickcheck-instances
      , dependency-quickcheck-monoid-subclasses
      , dependency-text
      , extensions
    ghc-options:
        -threaded -with-rtsopts=-N
    main-is:
        Spec.hs
    hs-source-dirs:
        src/test
    other-modules:
        SpecHook
        Data.MonoidMap.ClassSpec
        Data.MonoidMap.ExampleSpec
        Data.MonoidMap.AccessSpec
        Data.MonoidMap.ComparisonSpec
        Data.MonoidMap.ConversionSpec
        Data.MonoidMap.DistributivitySpec
        Data.MonoidMap.MapSpec
        Data.MonoidMap.FilterSpec
        Data.MonoidMap.FoldSpec
        Data.MonoidMap.PartitionSpec
        Data.MonoidMap.MembershipSpec
        Data.MonoidMap.SingletonSpec
        Data.MonoidMap.SliceSpec
        Data.MonoidMap.TraversalSpec
        Data.MonoidMap.PrefixSpec
        Data.MonoidMap.SuffixSpec
        Data.MonoidMap.IntersectionSpec
        Data.MonoidMap.UnionSpec
        Data.MonoidMap.ValiditySpec
        Examples.MultiMapSpec
        Examples.RecoveredMapSpec
        Test.Combinators.NonZero
        Test.Common
        Test.QuickCheck.Classes.Hspec
        Test.Hspec.Unit
    type:
        exitcode-stdio-1.0
    default-language:
        Haskell2010
    build-tool-depends:
        hspec-discover:hspec-discover ==2.*
    build-depends:
      , examples
      , monoidmap

benchmark benchmark
    import:
      , dependency-base
      , dependency-containers
      , dependency-deepseq
      , dependency-tasty-bench
      , dependency-tasty-hunit
    default-language:
        Haskell2010
    type:
        exitcode-stdio-1.0
    hs-source-dirs:
        src/benchmark
    main-is:
        Main.hs
    build-depends:
      , examples
      , monoidmap