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