packages feed

delta-types-1.0.0.0: delta-types.cabal

cabal-version:   2.2
name:            delta-types
version:         1.0.0.0
synopsis:        Delta types, also known as change actions.
description:
  A __delta type__ @da@ for a __base type__ @a@ is a collection
  of values, each of which corresponds to a change @a → a@ of the base type.
  .
  See also
  .
  * [Delta encodings help separate business logic from database operations](https://bobkonf.de/2023/apfelmus.html)
  .
  * [Fixing Incremental Computation: Derivatives of Fixpoints, and the Recursive Semantics of Datalog](http://arxiv.org/abs/1811.06069)
  (Here, the concept of a delta type is called a __change action__.)

homepage:        https://github.com/cardano-foundation/delta-types
license:         Apache-2.0
license-file:    LICENSE
author:          Cardano Foundation (High Assurance Lab)
maintainer:      hal@cardanofoundation.org
copyright:       2021-2023 IOHK, 2024-2025 Cardano Foundation
category:        Data Structures
build-type:      Simple
tested-with:     GHC ==8.10.7 || ==9.6.6 || ==9.10.1
extra-doc-files:
  CHANGELOG.md
  README.md

common language
  default-language:   Haskell2010
  default-extensions:
    NoImplicitPrelude
    OverloadedStrings

  other-extensions:
    BangPatterns
    FlexibleContexts
    GADTs
    NamedFieldPuns
    StandaloneDeriving
    TupleSections
    TypeFamilies
    TypeOperators
    UndecidableInstances

common opts-lib
  ghc-options:
    -Wall -Wcompat -Wredundant-constraints -Wincomplete-uni-patterns
    -Wincomplete-record-updates

  if flag(release)
    ghc-options: -O2 -Werror

common opts-exe
  import:      opts-lib
  ghc-options: -threaded -rtsopts

flag release
  description: Enable optimization and `-Werror`
  default:     False
  manual:      True

library
  import:          language, opts-lib
  hs-source-dirs:  src
  build-depends:
    , base           >=4.14  && <5
    , containers     >=0.5   && <0.9
    , semigroupoids  >=6.0.1 && <6.1

  exposed-modules:
    Data.Delta
    Data.Delta.Core
    Data.Delta.Embedding
    Data.Delta.Embedding.Internal
    Data.Delta.List
    Data.Delta.Map
    Data.Delta.Set

test-suite unit
  import:             language, opts-exe
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test/unit
  main-is:            Main.hs
  build-depends:
    , base
    , containers
    , delta-types
    , hspec        >=2.11.0 && <2.12
    , QuickCheck   >=2.14   && <2.16

  build-tool-depends: hspec-discover:hspec-discover
  other-modules:
    Data.Delta.CoreSpec
    Data.Delta.EmbeddingSpec
    Data.Delta.ListSpec
    Data.Delta.SetSpec