packages feed

singletons-base-3.5.1: singletons-base.cabal

cabal-version:  3.8
name:           singletons-base
version:        3.5.1
synopsis:       A promoted and singled version of the base library
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 == 9.14.1
extra-doc-files:    CHANGES.md
extra-source-files: README.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:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
description:
    @singletons-base@ uses @singletons-th@ to define promoted and singled
    functions from the @base@ library, including the "Prelude". This library was
    originally presented in /Dependently Typed Programming with Singletons/,
    published at the Haskell Symposium, 2012.
    (<https://richarde.dev/papers/2012/singletons/paper.pdf>)
    See also the paper published at Haskell Symposium, 2014, which describes
    how promotion works in greater detail:
    <https://richarde.dev/papers/2014/promotion/promotion.pdf>.
    .
    WARNING: @singletons-base@ defines orphan instances for @Sing@, @SingKind@,
    etc. for common types such as @Bool@, @[]@, @Maybe@, etc. If you define
    instances of these types in your code, you will likely not be able to use
    that code with @singletons-base@.
    .
    @singletons-base@ uses code that relies on bleeding-edge GHC language
    extensions. As such, @singletons-base@ only supports the latest major version
    of GHC (currently GHC 9.14). For more information,
    consult the @singletons@
    @<https://github.com/goldfirere/singletons/blob/master/README.md README>@.
    .
    You may also be interested in the following related libraries:
    .
    * The @singletons@ library is a small, foundational library that defines
      basic singleton-related types and definitions.
    .
    * The @singletons-th@ library defines Template Haskell functionality that
      allows /promotion/ of term-level functions to type-level equivalents and
      /singling/ functions to dependently typed equivalents.

source-repository this
  type:     git
  location: https://github.com/goldfirere/singletons.git
  subdir:   singletons-base
  tag:      v3.1.2

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

library
  hs-source-dirs:     src
  build-depends:      base             >= 4.22 && < 4.23,
                      pretty,
                      singletons       == 3.0.*,
                      singletons-th    >= 3.5.1 && < 3.6,
                      template-haskell >= 2.24 && < 2.25,
                      text >= 1.2
  default-language:   GHC2024
  other-extensions:   TemplateHaskell
  exposed-modules:    Data.Singletons.Base.CustomStar
                      Data.Singletons.Base.Enum
                      Data.Singletons.Base.TH
                      Data.Singletons.Base.PolyError
                      Data.Singletons.Base.SomeSing
                      Data.Singletons.Base.TypeError
                      Data.Singletons.Base.TypeRepTYPE

                      Control.Applicative.Singletons
                      Control.Monad.Singletons
                      Control.Monad.Fail.Singletons
                      Control.Monad.Zip.Singletons
                      Data.Bool.Singletons
                      Data.Either.Singletons
                      Data.Eq.Singletons
                      Data.Foldable.Singletons
                      Data.Function.Singletons
                      Data.Functor.Compose.Singletons
                      Data.Functor.Const.Singletons
                      Data.Functor.Identity.Singletons
                      Data.Functor.Product.Singletons
                      Data.Functor.Singletons
                      Data.Functor.Sum.Singletons
                      Data.List.Singletons
                      Data.List.NonEmpty.Singletons
                      Data.Maybe.Singletons
                      Data.Monoid.Singletons
                      Data.Ord.Singletons
                      Data.Proxy.Singletons
                      Data.Semigroup.Singletons
                      Data.String.Singletons
                      Data.Traversable.Singletons
                      Data.Tuple.Singletons
                      Data.Void.Singletons
                      GHC.TypeLits.Singletons
                      Prelude.Singletons
                      Text.Show.Singletons

  other-modules:      Data.Singletons.Base.Instances
                      Data.Singletons.Base.Util

                      Control.Monad.Singletons.Internal
                      Data.List.Singletons.Internal
                      Data.List.Singletons.Internal.Disambiguation
                      Data.Ord.Singletons.Disambiguation
                      Data.Semigroup.Singletons.Internal.Classes
                      Data.Semigroup.Singletons.Internal.Disambiguation
                      Data.Semigroup.Singletons.Internal.Wrappers
                      GHC.Base.Singletons
                      GHC.Num.Singletons
                      GHC.TypeLits.Singletons.Internal

  -- singletons re-exports
  reexported-modules: Data.Singletons
                    , Data.Singletons.Decide
                    , Data.Singletons.ShowSing
                    , Data.Singletons.Sigma

  -- singletons-th re-exports
  reexported-modules: Data.Singletons.TH
                    , Data.Singletons.TH.CustomStar
                    , Data.Singletons.TH.Options
                    , Data.Singletons.TH.SuppressUnusedWarnings

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

test-suite singletons-base-test-suite
  type:               exitcode-stdio-1.0
  hs-source-dirs:     tests
  ghc-options:        -Wall -Wcompat -threaded -with-rtsopts=-maxN16
  default-language:   GHC2024
  main-is:            SingletonsBaseTestSuite.hs
  other-modules:      SingletonsBaseTestSuiteUtils

  build-depends:      base >= 4.22 && < 4.23,
                      bytestring >= 0.10.9,
                      deepseq >= 1.4.4,
                      filepath >= 1.3,
                      ghc-paths >= 0.1,
                      process >= 1.1,
                      turtle >= 1.5,
                      text >= 1.2,
                      singletons-base,
                      tasty >= 1.2,
                      tasty-golden >= 2.2,

                      -- Dependencies only used when invoking GHC in the test
                      -- suite
                      ghc-prim,
                      ghc-internal,
                      mtl,
                      template-haskell,
                      th-desugar,
                      transformers
  build-tool-depends: singletons-base-code-generator:singletons-base-code-generator
  code-generators:    singletons-base-code-generator