packages feed

red-black-record-2.1.6.0: red-black-record.cabal

cabal-version:       3.4
name:                red-black-record
version:             2.1.6.0
synopsis:            Extensible records and variants indexed by a type-level Red-Black tree.

description:         A library that provides extensible records and variants,
                     both indexed by a type-level red-black tree that maps
                     Symbol keys to value types of any kind. 
                      
                     The keys correspond to fields
                     names in records, and to branch names in variants.
                       
                     At the term level, value types come wrapped in a type
                     constructor of kind @q -> Type@, where @q@ is the kind of
                     value types.
                     The records and variants can be converted to and from
                     regular Haskell datatypes; also to and from the unlabelled
                     n-ary products and sums of the @sop-core@ package.

license:             BSD-3-Clause
license-file:        LICENSE
author:              Daniel Diaz
maintainer:          diaz_carrete@yahoo.com
category:            Data
extra-source-files:  CHANGELOG.md,
                     README.md
build-type:          Simple
tested-with: GHC ==9.8.1 || ==9.6.3

source-repository head
    type: git
    location: https://github.com/danidiaz/red-black-record.git

library
  exposed-modules:     Data.RBR
                       Data.RBR.Subset
                       Data.RBR.Internal
                       Data.RBR.Examples
  build-depends:       base                 >= 4.10.0.0 && < 5,
                       sop-core             >= 0.4.0.0 && < 0.6
  hs-source-dirs:      lib
  default-language:    Haskell2010

library dot
  exposed-modules:     TypeLevelRecordDot
  build-depends:       base                 >= 4.10.0.0 && < 5,
                       red-black-record,
  hs-source-dirs:      lib-dot
  default-language:    Haskell2010
  visibility: public

library demoted
  exposed-modules:     Data.RBR.Demoted
  build-depends:       base                 >= 4.10.0.0 && < 5,
                       sop-core             >= 0.4.0.0 && < 0.6,
                       red-black-record
  hs-source-dirs:      lib-demoted
  default-language:    Haskell2010

test-suite tests
  type:                exitcode-stdio-1.0
  hs-source-dirs:      tests
  main-is:             tests.hs
  build-depends:
                       base                 >= 4.10.0.0 && < 5,
                       sop-core             >= 0.4.0.0 && < 0.6,
                       tasty                >= 0.10.1.1,
                       tasty-hunit          >= 0.9.2,
                       red-black-record,
                       red-black-record:demoted
  default-language:    Haskell2010

test-suite tests-generically
  type:                exitcode-stdio-1.0
  hs-source-dirs:      tests
  main-is:             tests-generically.hs
  build-depends:
                       base                 >= 4.10.0.0 && < 5,
                       sop-core             >= 0.4.0.0 && < 0.6,
                       tasty                >= 0.10.1.1,
                       tasty-hunit          >= 0.9.2,
                       red-black-record,
                       red-black-record:dot,
  default-language:    Haskell2010