packages feed

monoidal-containers-0.6: monoidal-containers.cabal

name:                monoidal-containers
version:             0.6
synopsis:            Containers with monoidal accumulation
description:
    Containers with merging via monoidal accumulation. The 'Monoid' instances
    provided by the @containers@ and @unordered-containers@ packages merge
    structures in a left-biased manner instead of using the underlying monoidal
    structure of the value.
    .
    This package wraps the types provided by these packages, but provides @Monoid@
    instances implemented in terms of the value type's 'mappend'. For instance,
    the @Monoid@ @Map@ instance looks like,
    .
    @
    instance (Ord k, Semigroup a) => Monoid (MonoidalMap k a)
    @
homepage:            http://github.com/bgamari/monoidal-containers
license:             BSD3
license-file:        LICENSE
author:              Ben Gamari
maintainer:          ben@smart-cactus.org
copyright:           (c) 2014 Ben Gamari
category:            Data
build-type:          Simple
cabal-version:       >=1.10
extra-source-files:  Changelog.md
tested-with:         GHC ==7.8.4, GHC ==8.0.2, GHC ==8.2.2, GHC ==8.4.3, GHC ==8.6.1

source-repository head
  type:                git
  location:            git://github.com/bgamari/monoidal-containers

flag split-these
  description: Use split these/semialign packages
  manual:      False
  default:     True

library
  exposed-modules:     Data.Map.Monoidal
                       Data.HashMap.Monoidal
                       Data.IntMap.Monoidal
                       Data.Map.Monoidal.Strict
                       Data.IntMap.Monoidal.Strict
  other-extensions:    CPP,
                       MultiParamTypeClasses,
                       GeneralizedNewtypeDeriving,
                       DeriveTraversable,
                       DeriveDataTypeable
  build-depends:       base >=4.5 && <4.13,
                       aeson >=1.0 && <1.5,
                       containers >=0.5 && <0.7,
                       deepseq >=1.3 && <1.5,
                       unordered-containers >= 0.2 && < 0.3,
                       hashable >= 1.2 && < 1.4,
                       lens >=4.4 && <5,
                       newtype >=0.2 && <0.3,
                       semigroups >= 0.18 && < 0.20

  if flag(split-these)
    build-depends:     these >= 1 && <1.1,
                       semialign >=1 && <1.1
                    
  else
    build-depends:     these >= 0.7 && <0.9

  hs-source-dirs:      src
  default-language:    Haskell2010