cabal-version:  3.0
name:           monoidmap-examples
version:        0.0.0.0
bug-reports:    https://github.com/jonathanknowles/monoidmap-examples/issues
license:        Apache-2.0
license-file:   LICENSE
author:         Jonathan Knowles
maintainer:     mail@jonathanknowles.net
copyright:      2022–2025 Jonathan Knowles
category:       Data Structures
synopsis:       Examples for monoidmap.
description:    Examples for the monoidmap package.

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-hspec
    build-depends:hspec                         >= 2.10.9     && < 2.12
common dependency-monoid-subclasses
    build-depends:monoid-subclasses             >= 1.2.3      && < 1.3
common dependency-monoidmap
    build-depends:monoidmap                     >= 0.0.4.4    && < 0.1
common dependency-QuickCheck
    build-depends:QuickCheck                    >= 2.14.2     && < 2.16

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

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

library
    import:
      , dependency-base
      , dependency-containers
      , dependency-monoid-subclasses
      , dependency-monoidmap
      , extensions
    hs-source-dirs:
        components/monoidmap-examples
    exposed-modules:
        Data.MonoidMap.Examples.MultiMap
        Data.MonoidMap.Examples.MultiMap.Class
        Data.MonoidMap.Examples.MultiMap.Instances.MultiMap1
        Data.MonoidMap.Examples.MultiMap.Instances.MultiMap2
        Data.MonoidMap.Examples.MultiMap.Instances.MultiMap3
        Data.MonoidMap.Examples.MultiMap.Instances.MultiMap4
        Data.MonoidMap.Examples.MultiSet
        Data.MonoidMap.Examples.NestedMonoidMap
        Data.MonoidMap.Examples.Set.NonEmpty
    default-language:
        Haskell2010

test-suite monoidmap-examples-test
    import:
      , dependency-base
      , dependency-containers
      , dependency-hspec
      , dependency-QuickCheck
      , extensions
    build-depends:
      , monoidmap-examples
    ghc-options:
        -threaded -with-rtsopts=-N
    main-is:
        Spec.hs
    hs-source-dirs:
        components/monoidmap-examples-test
    other-modules:
        Data.MonoidMap.Examples.MultiMapSpec
        SpecHook
    type:
        exitcode-stdio-1.0
    default-language:
        Haskell2010
    build-tool-depends:
        hspec-discover:hspec-discover ==2.*