| CARVIEW |
data-standards: A collection of standards representable by simple data types.
Type-safe representations of the country codes described by the ISO 3166-1 specification.
[Skip to Readme]
Modules
[Index] [Quick Jump]
Downloads
- data-standards-0.1.0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2 |
|---|---|
| Change log | ChangeLog.md |
| Dependencies | base (>=4.9 && <4.12), hashable (>=1.2 && <1.3), unordered-containers (<0.3) [details] |
| Tested with | ghc ==8.0.2, ghc ==8.4.3 |
| License | MPL-2.0 |
| Copyright | (c) 2018 Samuel May |
| Author | Samuel May |
| Maintainer | ag.eitilt@gmail.com |
| Uploaded | by ageitilt at 2018-07-24T02:54:28Z |
| Category | Data |
| Home page | https://github.com/ag-eitilt/data-standards |
| Bug tracker | https://github.com/ag-eitilt/data-standards/issues |
| Source repo | head: git clone git://github.com/ag-eitilt/data-standards.git this: git clone git://github.com/ag-eitilt/data-standards.git(tag v0.1.0.2) |
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Downloads | 1826 total (14 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2018-07-24 [all 1 reports] |
Readme for data-standards-0.1.0.2
[back to package description]A number of the ISO standards are particularly attractive to being implemented as static data libraries: they describe short strings that are prone to error if left as 'Text', but are large enough to strongly discourage rewriting them for each project. It is no surprise, therefore, that this package is the fourth on Hackage to implement ISO 3166-1:
- "Data.ISO3166_CountryCodes" from iso3166-country-codes
- "Data.CountryCodes" from country-codes
- "Country" from country
However, none of those options truly seemed to provide an ideal, /complete/
experience. Only one (country) provides all three code encodings, but it
doesn't expose constructors for pattern matching. None of them implement the
other two parts of ISO 3166 (region codes, and historic countries), and the
only package that makes an effort to do so ("Data.StateCodes" from
state-codes) doesn't cover
anything beyond the US. Someone who only needs the alpha-2 codes ("CA") may
indeed find one of the existing packages sufficient, but for anyone who does
need the full power of ISO 3166-2, none of them would serve.
The lack of people who would actually find this useful is another matter. (Eight packages using the simple alpha-2 codes from one or another of the above, as of writing.)
This package is an attempt to package that standard -- and, eventually, others
like it -- in a consistent API based in standard Haskell; fromEnum rather
than encodeNumeric, for example.
The following standards are implemented:
-
ISO 3166-1 (
Data.Standards.ISO.Country.Primary)- alpha-2 (
Data.Standards.ISO.Country.Primary.Alpha2) - alpha-3 (
Data.Standards.ISO.Country.Primary.Alpha3) - numeric (
Data.Standards.ISO.Country.Primary.Numeric)
- alpha-2 (