name:                dual-tree
version:             0.2.3.1
x-revision: 2
synopsis:            Rose trees with cached and accumulating monoidal annotations
description:         Rose (n-ary) trees with both upwards- (/i.e./
                     cached) and downwards-traveling (/i.e./
                     accumulating) monoidal annotations.  This is used
                     as the core data structure underlying
                     the @diagrams@ framework
                     (<https://diagrams.github.io>), but
                     potentially has other applications as well.
                     .
                     Abstractly, a DUALTree is a rose (n-ary) tree
                     with data (of type @l@) at leaves, data (of type
                     @a@) at internal nodes, and two types of monoidal
                     annotations, one (of type @u@) travelling \"up\"
                     the tree and one (of type @d@) traveling
                     \"down\".
                     .
                     See "Data.Tree.DUAL" for full documentation.
                     "Data.Tree.DUAL" provides a public API which
                     should suffice for most purposes.
                     "Data.Tree.DUAL.Internal" exports more of the
                     internal implementation---use it at your own
                     risk.
license:             BSD3
license-file:        LICENSE
extra-source-files:  CHANGES
author:              Brent Yorgey
maintainer:          diagrams-discuss@googlegroups.com
category:            Data
build-type:          Simple
cabal-version:       >=1.10
bug-reports:         https://github.com/diagrams/dual-tree/issues
tested-with:         GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.7 || ==9.6.3 || ==9.8.1
source-repository head
  type: git
  location: https://github.com/diagrams/dual-tree.git

library
  default-language:  Haskell2010
  exposed-modules:   Data.Tree.DUAL
                     Data.Tree.DUAL.Internal
  build-depends:     base >= 4.3 && < 4.20,
                     semigroups >= 0.8 && < 0.21,
                     monoid-extras >= 0.6 && < 0.7
  hs-source-dirs:    src
  other-extensions:  GeneralizedNewtypeDeriving,
                     MultiParamTypeClasses,
                     FlexibleInstances,
                     DeriveFunctor,
                     TypeOperators,
                     FlexibleContexts,
                     DeriveDataTypeable
test-suite test
  default-language:  Haskell2010
  type:              exitcode-stdio-1.0
  main-is:           Test.hs
  hs-source-dirs:    test
  build-depends:     base,
                     QuickCheck,
                     testing-feat,
                     monoid-extras,
                     semigroups,
                     dual-tree