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

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.16 && <4.19), d10, hashable (>=1.4.2 && <1.5), hedgehog (>=1.1.2 && <1.3), template-haskell (>=2.18 && <2.21) [details]
License MIT
Copyright 2018-2021 Mission Valley Software LLC
Author Chris Martin
Maintainer Chris Martin, Julie Moronuki
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-06-26T21:49:41Z
Distributions
Reverse Dependencies 2 direct, 3969 indirect [details]
Downloads 4557 total (37 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-06-26 [all 1 reports]

Readme for d10-1.0.1.3

[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.