cabal-version:      >=1.10
name:               OneTuple
version:            0.3.1
x-revision:         2
synopsis:           Singleton Tuple
category:           Data
description:
 This package is a compatibility package for a singleton data type
 .
 > data Solo a = Solo a
 .
 Note: it's not a @newtype@
 .
 @Solo@ is available in @base-4.16@ (GHC-9.2).

copyright:          (c) John Dorsey 2008
license:            BSD3
license-file:       LICENSE
author:             John Dorsey <[email protected]>
maintainer:
 Oleg Grenrus <[email protected]>, John Dorsey <[email protected]>

stability:          experimental
build-type:         Simple
tested-with:
 GHC ==7.4.2
  || ==7.6.3
  || ==7.8.4
  || ==7.10.3
  || ==8.0.2
  || ==8.2.2
  || ==8.4.4
  || ==8.6.5
  || ==8.8.4
  || ==8.10.4
  || ==9.0.1
  || ==9.2.1

extra-source-files: Changelog.md

source-repository head
 type:     git
 location: https://github.com/phadej/OneTuple.git

library
 default-language: Haskell98
 exposed-modules:
   Data.Tuple.OneTuple
   Data.Tuple.Solo
   Data.Tuple.Solo.TH

 hs-source-dirs:   src
 build-depends:
     base              >=4.5 && <4.17
   , template-haskell

 if impl(ghc >=9.0)
   build-depends: ghc-prim

 else
   build-depends: hashable >=1.3.5.0 && <1.5

 if !impl(ghc >=8.0)
   build-depends:
       semigroups    >=0.18.4 && <0.21
     , transformers  >=0.3    && <0.7

   -- Ensure Data.Functor.Classes is always available
   if impl(ghc >=7.10)
     build-depends: transformers >=0.4.2.0

   else
     build-depends: transformers-compat >=0.5.1.0 && <0.8

 if !impl(ghc >=9.2)
   build-depends: base-orphans >=0.8.6

 if !impl(ghc >=7.6)
   build-depends: ghc-prim

test-suite instances
 type:             exitcode-stdio-1.0
 default-language: Haskell98
 hs-source-dirs:   test
 main-is:          instances.hs
 build-depends:
     base
   , hashable  >=1.3.5.0 && <1.5
   , OneTuple

 if !impl(ghc >=8.0)
   build-depends:
       semigroups
     , transformers
     , transformers-compat

test-suite th
 type:             exitcode-stdio-1.0
 default-language: Haskell98
 hs-source-dirs:   test
 main-is:          th.hs
 build-depends:
     base
   , OneTuple
   , template-haskell