cabal-version:      3.0
name:               generic-diff
version:            0.1.0.0
synopsis:           Generic structural diffs
description:
  Generic structural diffs on arbitrary datatypes,
  using [generics-sop](https://hackage.haskell.org/package/generics-sop).

  See the module documentation in "Generics.Diff".
license:            BSD-3-Clause
license-file:       LICENSE
author:             Frederick Pringle
maintainer:         freddyjepringle@gmail.com
copyright:          Copyright(c) Frederick Pringle 2025
homepage:           https://github.com/fpringle/generic-diff
category:           Generics, Test
build-type:         Simple
extra-doc-files:    CHANGELOG.md
                    README.md
tested-with:
  GHC == 9.12.2
  GHC == 9.10.1
  GHC == 9.8.2
  GHC == 9.6.5
  GHC == 9.4.8
  GHC == 9.2.8
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.6.5

source-repository head
  type:     git
  location: https://github.com/fpringle/generic-diff.git

common warnings
  ghc-options: -Wall

common deps
  build-depends:
    , base >= 4.12 && < 5
    , sop-core >= 0.4.0.1 && < 0.6
    , generics-sop >= 0.4 && < 0.6
    , text >= 1.1 && < 2.2

common extensions
  default-extensions:
    AllowAmbiguousTypes
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveGeneric
    FlexibleContexts
    FlexibleInstances
    GADTs
    LambdaCase
    OverloadedStrings
    PolyKinds
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TypeApplications
    TypeFamilies
    TypeOperators
    UndecidableInstances
    ViewPatterns

library
  import:
      warnings
    , deps
    , extensions
  exposed-modules:
      Generics.Diff
      Generics.Diff.Instances
      Generics.Diff.Render
  other-modules:
      Generics.Diff.Class
      Generics.Diff.Type

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

test-suite generic-diff-test
  import:
      warnings
    , deps
    , extensions
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Spec.hs
  other-modules:
    Generics.Diff.UnitTestsSpec
    Generics.Diff.PropertyTestsSpec
    Util
  build-tool-depends:
      hspec-discover:hspec-discover
  ghc-options:      -Wno-orphans
  build-depends:
    , generic-diff
    , QuickCheck
    , hspec
    , basic-sop