Name: patch
Version: 0.0.0.1
Synopsis: Infrastructure for writing patches which act on other types.
Description:
  In this library, a patch is something which can be applied, analogous to a
  function, and which distinguishes returning the argument it was provided from
  returning something else.
License: BSD3
License-file: LICENSE
Author: Ryan Trinkle
Maintainer: maintainer@obsidian.systems
Stability: Experimental
Category: FRP
Build-type: Simple
Cabal-version: >=1.9.2
homepage: https://obsidian.systems
bug-reports: https://github.com/reflex-frp/patch/issues
extra-source-files:
  README.md
  ChangeLog.md

tested-with:
  GHC  ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1
  GHCJS ==8.4

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

library
  hs-source-dirs: src
  build-depends: base >= 4.9 && < 4.14
               , constraints-extras >= 0.3 && < 0.4
               , containers >= 0.6 && < 0.7
               , dependent-map >= 0.3 && < 0.4
               , dependent-sum >= 0.6 && < 0.7
               , semigroupoids >= 4.0 && < 6
               , transformers >= 0.5.6.0 && < 0.6
               , witherable >= 0.3 && < 0.3.2

  exposed-modules: Data.Functor.Misc
                 , Data.Patch
                 , Data.Patch.Class
                 , Data.Patch.DMap
                 , Data.Patch.DMapWithMove
                 , Data.Patch.IntMap
                 , Data.Patch.Map
                 , Data.Patch.MapWithMove

  ghc-options: -Wall -fwarn-redundant-constraints -fwarn-tabs

  if flag(split-these)
    build-depends: these >= 1 && <1.1
                 , semialign >=1 && <1.2
                 , monoidal-containers >= 0.6 && < 0.7
  else
    build-depends: these >= 0.4 && <0.9
                 , monoidal-containers == 0.4.0.0

test-suite hlint
  type: exitcode-stdio-1.0
  main-is: hlint.hs
  hs-source-dirs: test
  build-depends: base
               , directory
               , filepath
               , filemanip
               , hlint < 2.1 || >= 2.2.2
  if impl(ghcjs)
    buildable: False

source-repository head
  type: git
  location: https://github.com/reflex-frp/patch
