d10: Digits 0-9

[ data, library, mit ] [ Propose Tags ]

Data types representing the digits zero through nine.

Each of the following modules defines a different type named D10, all of which are different representations of the same concept D10.Char, D10.Num, D10.Safe.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.2.0.1, 0.2.1.0, 0.2.1.2, 0.2.1.4, 0.2.1.6, 0.3, 0.3.0.1, 1, 1.0.0.1, 1.0.0.2, 1.0.1.0, 1.0.1.1, 1.0.1.2, 1.0.1.3
Change log changelog.md
Dependencies base (>=4.14 && <4.19), d10, hashable (>=1.3.5 && <1.5), hedgehog (>=1.0.5 && <1.3), template-haskell (>=2.16 && <2.21) [details]
License MIT
Copyright 2018-2021 Mission Valley Software LLC
Author Chris Martin
Maintainer Chris Martin, Julie Moronuki
Revised Revision 1 made by chris_martin at 2023-06-26T21:48:02Z
Category Data
Home page https://github.com/typeclasses/d10
Bug tracker https://github.com/typeclasses/d10/issues
Source repo head: git clone https://github.com/typeclasses/d10
Uploaded by chris_martin at 2023-01-02T19:16:19Z
Distributions
Reverse Dependencies 2 direct, 3917 indirect [details]
Downloads 4357 total (50 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for d10-1.0.1.2

[back to package 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

Each module that defines a D10 type also defines quasi-quoters for it. With the QuasiQuotes GHC extension enabled, a single digit like 7 can be written as [d10|7|], and a list of digits like [4,5,6] can be written as [d10|456|]. For D10.Char and D10.Num, the quasi-quoters are 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.