packages feed

d10-1: d10.cabal

cabal-version: 3.0

name: d10
version: 1
category: Data
synopsis: Digits 0-9

description:
    Data types representing the digits zero through nine.

    == Modules

    Each of the following modules defines a different type named
    @D10@, all of which are different representations of the same
    concept:

    * "D10.Char" - Defines a @D10@ type as a newtype for @Char@,
      where the values are restricted to characters between
      @'0'@ and @'9'@
    * "D10.Num" - Defines a @D10@ type as a newtype for any
      type with an instance of the @Num@ class, where the values
      are restricted to numbers between @fromInteger 0@ and
      @fromInteger 9@
    * "D10.Safe" - Defines a @D10@ type as @D0 | D1 | D2 | ... | D9@

    The @Arithmetic@ modules provide infix operators (@+@), (@-@), (@*@)
    for modular arithmetic:

    * "D10.Char.Arithmetic"
    * "D10.Num.Arithmetic"
    * "D10.Safe.Arithmetic"

    The following modules export constructors that can be used
    incorrectly:

    * "D10.Char.Unsafe"
    * "D10.Num.Unsafe"

    Functions to test whether values of various types represent
    digits in the range 0 to 9:

    * "D10.Predicate"

    == Quasi-quoters

    * The "D10.Char" and "D10.Num" modules include quasi-quoters
      named @d10@ used to express single digits. For example, 7
      can be written as @[d10|7|]@. This is an important feature
      because the @D10@ types defined in these modules have
      unsafe constructors, and the quasi-quoters provide
      compile-time assurance that we never construct a @D10@
      that represents a value outside the range 0 to 9.
    * "D10.Char", "D10.Num", and "D10.Safe" include quasi-quoters
      named @d10list@ to express lists of digits. For example,
      [4, 5, 6] can be written as @[d10list|456|]@.

homepage:    https://github.com/typeclasses/d10
bug-reports: https://github.com/typeclasses/d10/issues

author:     Chris Martin
maintainer: Chris Martin, Julie Moronuki

copyright: 2018-2021 Mission Valley Software LLC
license: MIT
license-file: license.txt

build-type: Simple

tested-with:
    GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.1
  , GHC == 8.8.1, GHC == 8.10.1, GHC == 9.0.1

extra-source-files:
    README.md
    CHANGELOG.md

source-repository head
    type: git
    location: https://github.com/typeclasses/d10

common language
    default-language: Haskell2010
    ghc-options: -Wall
    default-extensions:
        DeriveDataTypeable DeriveGeneric DeriveLift
        DerivingStrategies InstanceSigs QuasiQuotes
        ScopedTypeVariables TypeApplications

common library-dependencies
    build-depends:
        base ^>= 4.10 || ^>= 4.11 || ^>= 4.12
          || ^>= 4.13 || ^>= 4.14 || ^>= 4.15
      , template-haskell
             ^>= 2.12 || ^>= 2.13 || ^>= 2.14
          || ^>= 2.15 || ^>= 2.16 || ^>= 2.17

common test
    import: language
    import: library-dependencies
    hs-source-dirs: test
    other-modules: AssertQFails Fallible
    build-depends: d10, hedgehog ^>= 1.0
    default-extensions: GeneralizedNewtypeDeriving
                        TemplateHaskell

library
    import: language
    import: library-dependencies
    hs-source-dirs: src
    exposed-modules:
        D10.Char
          , D10.Char.Arithmetic
          , D10.Char.Conversions
          , D10.Char.Quotes
          , D10.Char.Splices
          , D10.Char.Type
          , D10.Char.Unsafe
      , D10.Num
          , D10.Num.Arithmetic
          , D10.Num.Conversions
          , D10.Num.Quotes
          , D10.Num.Splices
          , D10.Num.Type
          , D10.Num.Unsafe
      , D10.Safe
          , D10.Safe.Arithmetic
          , D10.Safe.Conversions
          , D10.Safe.Quotes
          , D10.Safe.Splices
          , D10.Safe.Type
      , D10.Predicate

test-suite char
    import: test
    type: exitcode-stdio-1.0
    main-is: char.hs

test-suite num
    import: test
    type: exitcode-stdio-1.0
    main-is: num.hs

test-suite safe
    import: test
    type: exitcode-stdio-1.0
    main-is: safe.hs