packages feed

singletons-2.7: singletons.cabal

name:           singletons
version:        2.7
                -- Remember to bump version in the Makefile as well
cabal-version:  >= 1.10
synopsis:       A framework for generating singleton types
homepage:       http://www.github.com/goldfirere/singletons
category:       Dependent Types
author:         Richard Eisenberg <rae@cs.brynmawr.edu>, Jan Stolarek <jan.stolarek@p.lodz.pl>
maintainer:     Ryan Scott <ryan.gl.scott@gmail.com>
bug-reports:    https://github.com/goldfirere/singletons/issues
stability:      experimental
tested-with:    GHC == 8.10.1
extra-source-files: README.md, CHANGES.md, tests/README.md,
                    tests/compile-and-dump/GradingClient/*.hs,
                    tests/compile-and-dump/InsertionSort/*.hs,
                    tests/compile-and-dump/Promote/*.hs,
                    tests/compile-and-dump/Singletons/*.hs
                    tests/compile-and-dump/GradingClient/*.golden,
                    tests/compile-and-dump/InsertionSort/*.golden,
                    tests/compile-and-dump/Promote/*.golden,
                    tests/compile-and-dump/Singletons/*.golden
license:        BSD3
license-file:   LICENSE
build-type:     Custom
description:
    This library generates singleton types, promoted functions, and singleton
    functions using Template Haskell. It is useful for programmers who wish
    to use dependently typed programming techniques. The library was originally
    presented in /Dependently Typed Programming with Singletons/, published
    at the Haskell Symposium, 2012.
    (<https://cs.brynmawr.edu/~rae/papers/2012/singletons/paper.pdf>)
    .
    Version 1.0 and onwards works a lot harder to promote functions. See the
    paper published at Haskell Symposium, 2014:
    <https://cs.brynmawr.edu/~rae/papers/2014/promotion/promotion.pdf>.

source-repository this
  type:     git
  location: https://github.com/goldfirere/singletons.git
  tag:      v2.7

source-repository head
  type:     git
  location: https://github.com/goldfirere/singletons.git
  branch:   master

custom-setup
  setup-depends:
    base      >= 4.14 && < 4.15,
    Cabal     >= 3.2 && < 3.3,
    directory >= 1,
    filepath  >= 1.3

library
  hs-source-dirs:     src
  build-depends:      base >= 4.14 && < 4.15,
                      mtl >= 2.2.1,
                      ghc-boot-th,
                      template-haskell,
                      containers >= 0.5,
                      th-desugar >= 1.11 && < 1.12,
                      pretty,
                      syb >= 0.4,
                      text >= 1.2,
                      transformers >= 0.5.2
  default-language:   Haskell2010
  other-extensions:   TemplateHaskell
        -- TemplateHaskell must be listed in cabal file to work with
        -- ghc7.8+

  exposed-modules:    Data.Singletons
                      Data.Singletons.CustomStar
                      Data.Singletons.TypeRepTYPE
                      Data.Singletons.TH
                      Data.Singletons.TH.Options
                      Data.Singletons.Prelude
                      Data.Singletons.Prelude.Applicative
                      Data.Singletons.Prelude.Base
                      Data.Singletons.Prelude.Bool
                      Data.Singletons.Prelude.Const
                      Data.Singletons.Prelude.Either
                      Data.Singletons.Prelude.Enum
                      Data.Singletons.Prelude.Eq
                      Data.Singletons.Prelude.Foldable
                      Data.Singletons.Prelude.Function
                      Data.Singletons.Prelude.Functor
                      Data.Singletons.Prelude.IsString
                      Data.Singletons.Prelude.Identity
                      Data.Singletons.Prelude.Ord
                      Data.Singletons.Prelude.List
                      Data.Singletons.Prelude.List.NonEmpty
                      Data.Singletons.Prelude.Maybe
                      Data.Singletons.Prelude.Monad
                      Data.Singletons.Prelude.Monad.Fail
                      Data.Singletons.Prelude.Monad.Zip
                      Data.Singletons.Prelude.Monoid
                      Data.Singletons.Prelude.Num
                      Data.Singletons.Prelude.Proxy
                      Data.Singletons.Prelude.Semigroup
                      Data.Singletons.Prelude.Show
                      Data.Singletons.Prelude.Traversable
                      Data.Singletons.Prelude.Tuple
                      Data.Singletons.Prelude.Void
                      Data.Singletons.TypeError
                      Data.Singletons.TypeLits
                      Data.Singletons.Decide
                      Data.Singletons.ShowSing
                      Data.Singletons.Sigma
                      Data.Singletons.SuppressUnusedWarnings

  other-modules:      Data.Singletons.Deriving.Infer
                      Data.Singletons.Deriving.Bounded
                      Data.Singletons.Deriving.Enum
                      Data.Singletons.Deriving.Foldable
                      Data.Singletons.Deriving.Functor
                      Data.Singletons.Deriving.Ord
                      Data.Singletons.Deriving.Show
                      Data.Singletons.Deriving.Traversable
                      Data.Singletons.Deriving.Util
                      Data.Singletons.Internal
                      Data.Singletons.Prelude.List.Internal
                      Data.Singletons.Prelude.List.Internal.Disambiguation
                      Data.Singletons.Prelude.Monad.Internal
                      Data.Singletons.Prelude.Ord.Disambiguation
                      Data.Singletons.Prelude.Semigroup.Internal
                      Data.Singletons.Prelude.Semigroup.Internal.Disambiguation
                      Data.Singletons.Promote
                      Data.Singletons.Promote.Monad
                      Data.Singletons.Promote.Eq
                      Data.Singletons.Promote.Type
                      Data.Singletons.Promote.Defun
                      Data.Singletons.Util
                      Data.Singletons.Partition
                      Data.Singletons.Prelude.Instances
                      Data.Singletons.Names
                      Data.Singletons.Single.Monad
                      Data.Singletons.Single.Type
                      Data.Singletons.Single.Eq
                      Data.Singletons.Single.Data
                      Data.Singletons.Single.Defun
                      Data.Singletons.Single.Fixity
                      Data.Singletons.Single
                      Data.Singletons.TypeLits.Internal
                      Data.Singletons.Syntax

  ghc-options:        -Wall -Wcompat -Wno-redundant-constraints

test-suite singletons-test-suite
  type:               exitcode-stdio-1.0
  hs-source-dirs:     tests
  ghc-options:        -Wall -Wcompat -threaded -with-rtsopts=-maxN16
  default-language:   Haskell2010
  main-is:            SingletonsTestSuite.hs
  other-modules:      ByHand
                      ByHand2
                      SingletonsTestSuiteUtils

  build-depends:      base >= 4.14 && < 4.15,
                      bytestring >= 0.10.9,
                      deepseq >= 1.4.4,
                      filepath >= 1.3,
                      process >= 1.1,
                      turtle >= 1.5,
                      text >= 1.2,
                      singletons,
                      tasty >= 1.2,
                      tasty-golden >= 2.2