MyNixOS website logo
Description

Country data type and functions.

The country library provides a data type for dealing with the set of countries as defined by ISO 3166. The representation is compact and is well-suited to use with vectors and primitive arrays. Additionally, this library exports functions that provide the following encodings and decodings: . * ISO Alpha-2 (two-letter country code) . * ISO Alpha-3 (three-letter country code) . * ISO Numeric (three-digit country code) . . The main differences between this library and `iso3166-country-codes` are: . * it doesn't use an ADT to represent countries, instead it uses the country's three-digit country code. . * it doesn't use String for encoding/decoding . * it provides two-alpha and three-alpha country codes. . * it provides Prim instances from the primitive package to allow types to be used in unboxed vectors/arrays. . * BSD3 licence instead of LGPL . Please open up an issue on github if there is anything you would like to see added.

country

This is a mega-repo with two projects:

  • country: A library for dealing with countries, country codes, etc.
  • country-code-generation: An executable that generates some of the source code in country. It converts both countries.csv and aliases.txt into lists of tuples.

Build Instructions

Some of source code in the country library is generated. To generate this code, the country-code-generation application reads the top-level aliases.txt and countries.csv file and outputs source Haskell. If neither of these two files have been modified, then it is not necessary to run country-code-generation. A cabal.project file is used to build two targets. From the project root, run:

cabal build country-code-generation
/home/jdoe/path/to/projects/country/.../country-code-generation
cabal build country
Metadata

Version

0.2.4.2

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows