cabal-version: 3.0 name: d10 version: 1.0.1.0 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 source-repository head type: git location: https://github.com/typeclasses/d10 common language default-language: Haskell2010 ghc-options: -Wall default-extensions: DeriveAnyClass DeriveDataTypeable DeriveGeneric DeriveLift DerivingStrategies InstanceSigs QuasiQuotes ScopedTypeVariables TypeApplications common library-dependencies build-depends: base ^>= 4.13 || ^>= 4.14 || ^>= 4.15 || ^>= 4.16 , hashable ^>= 1.3 || ^>= 1.4 , template-haskell ^>= 2.15 || ^>= 2.16 || ^>= 2.17 || ^>= 2.18 common test-language import: language default-extensions: GeneralizedNewtypeDeriving TemplateHaskell common test-dependencies import: library-dependencies build-depends: d10 , hedgehog ^>= 1.0.1 || ^>= 1.1 common test import: test-language import: test-dependencies hs-source-dirs: test build-depends: d10-test 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 library d10-test import: test-language import: test-dependencies hs-source-dirs: library/d10-test exposed-modules: AssertQFails , Fallible 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