cabal-version:      2.2
name:               universe-base
version:            1.1.4
synopsis:           A class for finite and recursively enumerable types.
description:
  A class for finite and recursively enumerable types and some helper functions for enumerating them.
  .
  @
  class Universe a where universe :: [a]
  class Universe a => Finite a where universeF :: [a]; universeF = universe
  @
  .
  This is slim package definiting only the type-classes and instances
  for types in GHC boot libraries.
  For more instances check @universe-instances-*@ packages.

homepage:           https://github.com/dmwit/universe
license:            BSD-3-Clause
license-file:       LICENSE
author:             Daniel Wagner
maintainer:         me@dmwit.com
copyright:          2014 Daniel Wagner
category:           Data
build-type:         Simple
extra-source-files: changelog
tested-with:
  GHC ==8.6.5
   || ==8.8.4
   || ==8.10.7
   || ==9.0.2
   || ==9.2.8
   || ==9.4.8
   || ==9.6.5
   || ==9.8.2
   || ==9.10.1

source-repository head
  type:     git
  location: https://github.com/dmwit/universe
  subdir:   universe-base

library
  default-language: Haskell2010
  hs-source-dirs:   src
  exposed-modules:
    Data.Universe.Class
    Data.Universe.Helpers
    Data.Universe.Generic

  other-extensions:
    BangPatterns
    DefaultSignatures
    GADTs
    ScopedTypeVariables
    TypeFamilies

  build-depends:
      base          >=4.12    && <4.21
    , containers    >=0.6.0.1 && <0.8
    , tagged        >=0.8.8   && <0.9
    , transformers  >=0.5.6.2 && <0.7

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

    else
      build-depends: OneTuple >=0.4.2 && <0.5

  if impl(ghc >=9.0)
    -- these flags may abort compilation with GHC-8.10
    -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295
    ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode

test-suite tests
  default-language: Haskell2010
  other-extensions: ScopedTypeVariables
  type:             exitcode-stdio-1.0
  main-is:          Tests.hs
  hs-source-dirs:   tests
  ghc-options:      -Wall
  build-depends:
      base
    , containers
    , QuickCheck     >=2.8.2 && <2.16
    , universe-base