data-standards-0.1.0.1: Data/Standards/ISO/Country/Primary/Alpha2.hs
{- | Module : Data.Standards.ISO.Country.Primary.Alpha2
- Description : The two-character country codes described by ISO 3166-1.
- Copyright : (c) 2018 Samuel May
- License : MPL-2.0
- Maintainer : ag.eitilt@gmail.com
- Stability : provisional
- Portability : portable
-}
module Data.Standards.ISO.Country.Primary.Alpha2
( Alpha2 ( .. )
, Status ( .. )
, codeStatus
) where
import Data.Standards.ISO.Country.Primary.Common
import qualified Data.Hashable as H
{-# WARNING UK "Official country code is GB" #-}
{-# DEPRECATED AN "Divided into BQ, CW and SX, or use ISO 3166-3 code ANHH" #-}
{-# DEPRECATED BU "Use new code MM or ISO 3166-3 code BUMM" #-}
{-# DEPRECATED CS "Divided into ME and RS, or use ISO 3166-3 code CSXX; previous usage divided into CZ and SK, or use ISO 3166-3 code CSHH" #-}
{-# DEPRECATED NT "Divided between IQ and SA, or use ISO 3166-3 code NTHH" #-}
{-# DEPRECATED TP "Use new code TL or ISO 3166-3 code TPTL" #-}
{-# DEPRECATED YU "Use ISO 3166-3 code YUCS" #-}
{-# DEPRECATED ZR "Use new code CD or ISO 3166-3 code ZRCD" #-}
{-# DEPRECATED DY "Use official code BJ" #-}
{-# DEPRECATED EW "Use official code EE" #-}
{-# DEPRECATED FL "Use official code LI" #-}
{-# DEPRECATED JA "Use official code JM" #-}
{-# DEPRECATED LF "Use code for entire country LY" #-}
{-# DEPRECATED PI "Use official code PH" #-}
{-# DEPRECATED RA "Use official code AR" #-}
{-# DEPRECATED RB "Use official code BO or BW, respectively" #-}
{-# DEPRECATED RC "Use official code CN" #-}
{-# DEPRECATED RH "Use official code HT" #-}
{-# DEPRECATED RI "Use official code ID" #-}
{-# DEPRECATED RM "Use official code MG" #-}
{-# DEPRECATED RN "Use official code NE" #-}
{-# DEPRECATED RP "Use official code PH" #-}
{-# DEPRECATED SF "Use official code FI" #-}
{-# DEPRECATED WG "Use official code GD" #-}
{-# DEPRECATED WL "Use official code LC" #-}
{-# DEPRECATED WV "Use official code VC" #-}
{-# DEPRECATED YV "Use official code VE" #-}
{-# WARNING AP,BX,EF,EM,EP,EV,GC,IB,OA,WO "Not an official ISO 3166-1 code" #-}
{-# DEPRECATED CT "Use new code KI or ISO 3166-3 code CTKI" #-}
{-# DEPRECATED DD "Use new code DE or ISO 3166-3 code DDDE" #-}
{-# DEPRECATED FQ "Divided into TF and part of AQ, or use ISO 3166-3 code FQHH" #-}
{-# DEPRECATED HV "Use new code BF or ISO 3166-3 code HVBF" #-}
{-# DEPRECATED JT "Use new code UM or ISO 3166-3 code JTUM" #-}
{-# DEPRECATED MI "Use new code UM or ISO 3166-3 code MIUM" #-}
{-# DEPRECATED NH "Use new code VU or ISO 3166-3 code NHVU" #-}
{-# DEPRECATED NQ "Use new code AQ or ISO 3166-3 code NQAQ" #-}
{-# DEPRECATED PC "Divided into FM, MH, MP and PW, or use ISO 3166-3 code PCHH" #-}
{-# DEPRECATED PU "Use new code UM or ISO 3166-3 code PUUM" #-}
{-# DEPRECATED PZ "Use new code PA or ISO 3166-3 code PZPA" #-}
{-# DEPRECATED VD "Use new code VN or ISO 3166-3 code VDVN" #-}
{-# DEPRECATED WK "Use new code UM or ISO 3166-3 code WKUM" #-}
{-# DEPRECATED YD "Use new code YE or ISO 3166-3 code YDYE" #-}
-- | The official, recommended codes for countries, translated into a type-safe
-- representation. Unless otherwise specified, all codes are 'Official'.
data Alpha2
= AC -- ^ 'ExceptionalReservation': Ascension Island
| AD -- ^ Andorra
| AE -- ^ United Arab Emirates (the)
| AF -- ^ Afghanistan
| AG -- ^ Antigua and Barbuda
| AI -- ^ Anguilla; previously French Afar and Issas
| AL -- ^ Albania
| AM -- ^ Armenia
| AN -- ^ 'TransitionalReservation': Netherlands Antilles
| AO -- ^ Angola
| AP -- ^ 'NotInUse': African Regional Industrial Property Organization
| AQ -- ^ Antarctica
| AR -- ^ Argentina
| AS -- ^ American Samoa
| AT -- ^ Austria
| AU -- ^ Australia
| AW -- ^ Aruba
| AX -- ^ Åland Islands
| AZ -- ^ Azerbaijan
| BA -- ^ Bosnia and Herzegovina
| BB -- ^ Barbados
| BD -- ^ Bangladesh
| BE -- ^ Belgium
| BF -- ^ Burkina Faso
| BG -- ^ Bulgaria
| BH -- ^ Bahrain
| BI -- ^ Burundi
| BJ -- ^ Benin
| BL -- ^ Saint Barthélemy
| BM -- ^ Bermuda
| BN -- ^ Brunei Darussalam
| BO -- ^ Bolivia (Plurinational State of)
| BQ -- ^ Bonaire, Sint Eustatius and Saba; previously British Antarctic Territory (the)
| BR -- ^ Brazil
| BS -- ^ Bahamas (the)
| BT -- ^ Bhutan
| BU -- ^ 'TransitionalReservation': Burma
| BV -- ^ Bouvet Island
| BW -- ^ Botswana
| BX -- ^ 'NotInUse': Benelux Trademarks and Design Offices
| BY -- ^ Belarus
| BZ -- ^ Belize
| CA -- ^ Canada
| CC -- ^ Cocos (Keeling) Islands (the)
| CD -- ^ Congo (the Democratic Republic of the)
| CF -- ^ Central African Republic (the)
| CG -- ^ Congo (the)
| CH -- ^ Switzerland
| CI -- ^ Côte d'Ivoire
| CK -- ^ Cook Islands (the)
| CL -- ^ Chile
| CM -- ^ Cameroon
| CN -- ^ China
| CO -- ^ Colombia
| CP -- ^ 'ExceptionalReservation': Clipperton Island
| CR -- ^ Costa Rica
| CS -- ^ 'TransitionalReservation': Serbia and Montenegro; previously Czechoslovakia
| CT -- ^ 'Withdrawn': Canton and Enderbury Islands (the)
| CU -- ^ Cuba
| CV -- ^ Cabo Verde
| CW -- ^ Curaçao
| CX -- ^ Christmas Island
| CY -- ^ Cyprus
| CZ -- ^ Czechia
| DD -- ^ 'Withdrawn': German Democratic Republic (the)
| DE -- ^ Germany
| DG -- ^ 'ExceptionalReservation': Diego Garcia
| DJ -- ^ Djibouti
| DK -- ^ Denmark
| DM -- ^ Dominica
| DO -- ^ Dominican Republic (the)
| DY -- ^ 'IndeterminateReservation': Benin (road vehicles); previously Dahomey
| DZ -- ^ Algeria
| EA -- ^ 'ExceptionalReservation': Ceuta & Melilla
| EC -- ^ Ecuador
| EE -- ^ Estonia
| EF -- ^ 'NotInUse': European Community Patent Convention
| EM -- ^ 'NotInUse': European Trademark Office
| EP -- ^ 'NotInUse': European Patent Organization
| EV -- ^ 'NotInUse': Eurasian Patent Organization
| EW -- ^ 'IndeterminateReservation': Estonia (road vehicles)
| EG -- ^ Egypt
| EH -- ^ Western Sahara
| ER -- ^ Eritrea
| ES -- ^ Spain
| ET -- ^ Ethiopia
| EU -- ^ 'ExceptionalReservation': European Union (the)
| EZ -- ^ 'ExceptionalReservation': Eurozone (the)
| FI -- ^ Finland
| FJ -- ^ Fiji
| FK -- ^ Falkland Islands (the) [Malvinas]
| FL -- ^ 'IndeterminateReservation': Liechtenstein (road vehicles)
| FM -- ^ Micronesia (Federated States of)
| FO -- ^ Faroe Islands (the)
| FQ -- ^ 'Withdrawn': French Southern and Antarctic Territories (the)
| FR -- ^ France
| FX -- ^ 'ExceptionalReservation': France, Metropolitan
| GA -- ^ Gabon
| GB -- ^ United Kingdom of Great Britain and Northern Ireland (the)
| GC -- ^ 'NotInUse': Patent Office of the Cooperation Council for the Arab States of the Gulf
| GD -- ^ Grenada
| GE -- ^ Georgia; previously Gilbert and Ellice Islands (the)
| GF -- ^ French Guiana
| GG -- ^ Guernsey
| GH -- ^ Ghana
| GI -- ^ Gibraltar
| GL -- ^ Greenland
| GM -- ^ Gambia (the)
| GN -- ^ Guinea
| GP -- ^ Guadeloupe
| GQ -- ^ Equatorial Guinea
| GR -- ^ Greece
| GS -- ^ South Georgia and the South Sandwich Islands
| GT -- ^ Guatemala
| GU -- ^ Guam
| GW -- ^ Guinea-Bissau
| GY -- ^ Guyana
| HK -- ^ Hong Kong
| HM -- ^ Heard Island and McDonald Islands
| HN -- ^ Honduras
| HR -- ^ Croatia
| HT -- ^ Haiti
| HU -- ^ Hungary
| HV -- ^ 'Withdrawn': Upper Volta
| IB -- ^ 'NotInUse': World Intellectual Property Organization, International Bureau
| IC -- ^ 'ExceptionalReservation': Canary Islands (the)
| ID -- ^ Indonesia
| IE -- ^ Ireland
| IL -- ^ Israel
| IM -- ^ Isle of Man
| IN -- ^ India
| IO -- ^ British Indian Ocean Territory (the)
| IQ -- ^ Iraq
| IR -- ^ Iran (Islamic Republic of)
| IS -- ^ Iceland
| IT -- ^ Italy
| JA -- ^ 'IndeterminateReservation': Jamaica (road vehicles)
| JE -- ^ Jersey
| JM -- ^ Jamaica
| JO -- ^ Jordan
| JP -- ^ Japan
| JT -- ^ 'Withdrawn': Johnston Island
| KE -- ^ Kenya
| KG -- ^ Kyrgyzstan
| KH -- ^ Cambodia
| KI -- ^ Kiribati
| KM -- ^ Comoros (the)
| KN -- ^ Saint Kitts and Nevis
| KP -- ^ Korea (the Democratic People's Republic of)
| KR -- ^ Korea (the Republic of)
| KW -- ^ Kuwait
| KY -- ^ Cayman Islands (the)
| KZ -- ^ Kazakhstan
| LA -- ^ Lao People's Democratic Republic (the)
| LB -- ^ Lebanon
| LC -- ^ Saint Lucia
| LF -- ^ 'IndeterminateReservation': Lybia Fezzan (road vehicles)
| LI -- ^ Liechtenstein
| LK -- ^ Sri Lanka
| LR -- ^ Liberia
| LS -- ^ Lesotho
| LT -- ^ Lithuania
| LU -- ^ Luxembourg
| LV -- ^ Latvia
| LY -- ^ Libya
| MA -- ^ Morocco
| MC -- ^ Monaco
| MD -- ^ Moldova (the Republic of)
| ME -- ^ Montenegro
| MF -- ^ Saint Martin (French part)
| MG -- ^ Madagascar
| MH -- ^ Marshall Islands (the)
| MI -- ^ 'Withdrawn': Midway Islands (the)
| MK -- ^ Macedonia (the former Yugoslav Republic of)
| ML -- ^ Mali
| MM -- ^ Myanmar
| MN -- ^ Mongolia
| MO -- ^ Macao
| MP -- ^ Northern Mariana Islands (the)
| MQ -- ^ Martinique
| MR -- ^ Mauritania
| MS -- ^ Montserrat
| MT -- ^ Malta
| MU -- ^ Mauritius
| MV -- ^ Maldives
| MW -- ^ Malawi
| MX -- ^ Mexico
| MY -- ^ Malaysia
| MZ -- ^ Mozambique
| NA -- ^ Namibia
| NC -- ^ New Caledonia
| NE -- ^ Niger (the)
| NF -- ^ Norfolk Island
| NG -- ^ Nigeria
| NH -- ^ 'Withdrawn': New Hebrides
| NI -- ^ Nicaragua
| NL -- ^ Netherlands (the)
| NO -- ^ Norway
| NP -- ^ Nepal
| NQ -- ^ 'Withdrawn': Dronning Maud Land
| NR -- ^ Nauru
| NT -- ^ 'TransitionalReservation': Saudi Arabian-Iraqi neutral zone (the)
| NU -- ^ Niue
| NZ -- ^ New Zealand
| OA -- ^ 'NotInUse': African Intellectual Property Organization
| OM -- ^ Oman
| PA -- ^ Panama
| PC -- ^ 'Withdrawn': Pacific Islands (Trust Territory of the)
| PE -- ^ Peru
| PF -- ^ French Polynesia
| PG -- ^ Papua New Guinea
| PH -- ^ Philippines (the)
| PI -- ^ 'IndeterminateReservation': Philippines (road vehicles)
| PK -- ^ Pakistan
| PL -- ^ Poland
| PM -- ^ Saint Pierre and Miquelon
| PN -- ^ Pitcairn
| PR -- ^ Puerto Rico
| PS -- ^ Palestine, State of
| PT -- ^ Portugal
| PU -- ^ 'Withdrawn': United States Miscellaneous Pacific Islands (the)
| PW -- ^ Palau
| PY -- ^ Paraguay
| PZ -- ^ 'Withdrawn': Panama Canal Zone (the)
| QA -- ^ Qatar
| RA -- ^ 'IndeterminateReservation': Argentina (road vehicles)
| RB -- ^ 'IndeterminateReservation': Bolivia & Botswana (road vehicles)
| RC -- ^ 'IndeterminateReservation': China (road vehicles)
| RE -- ^ Réunion
| RH -- ^ 'IndeterminateReservation': Haiti (road vehicles); previously Southern Rhodesia
| RI -- ^ 'IndeterminateReservation': Indonesia (road vehicles)
| RM -- ^ 'IndeterminateReservation': Madagascar (road vehicles)
| RN -- ^ 'IndeterminateReservation': Niger (road vehicles)
| RO -- ^ Romania
| RP -- ^ 'IndeterminateReservation': Philippines (road vehicles)
| RS -- ^ Serbia
| RU -- ^ Russian Federation (the)
| RW -- ^ Rwanda
| SA -- ^ Saudi Arabia
| SB -- ^ Solomon Islands
| SC -- ^ Seychelles
| SD -- ^ Sudan (the)
| SE -- ^ Sweden
| SF -- ^ 'IndeterminateReservation': Finland
| SG -- ^ Singapore
| SH -- ^ Saint Helena, Ascension and Tristan da Cunha
| SI -- ^ Slovenia
| SJ -- ^ Svalbard and Jan Mayen
| SK -- ^ Slovakia; previously Sikkim
| SL -- ^ Sierra Leone
| SM -- ^ San Marino
| SN -- ^ Senegal
| SO -- ^ Somalia
| SR -- ^ Suriname
| SS -- ^ South Sudan
| ST -- ^ Sao Tome and Principe
| SU -- ^ 'ExceptionalReservation': USSR (the)
| SV -- ^ El Salvador
| SX -- ^ Sint Maarten (Dutch part)
| SY -- ^ Syrian Arab Republic
| SZ -- ^ Eswatini
| TA -- ^ 'ExceptionalReservation': Tristan da Cunha
| TC -- ^ Turks and Caicos Islands (the)
| TD -- ^ Chad
| TF -- ^ French Southern Territories (the)
| TG -- ^ Togo
| TH -- ^ Thailand
| TJ -- ^ Tajikistan
| TK -- ^ Tokelau
| TL -- ^ Timor-Leste
| TM -- ^ Turkmenistan
| TN -- ^ Tunisia
| TO -- ^ Tonga
| TR -- ^ Turkey
| TP -- ^ 'TransitionalReservation': East Timor
| TT -- ^ Trinidad and Tobago
| TV -- ^ Tuvalu
| TW -- ^ Taiwan (Province of China)
| TZ -- ^ Tanzania, United Republic of
| UA -- ^ Ukraine
| UG -- ^ Uganda
| UK -- ^ 'ExceptionalReservation': United Kingdom (the)
| UM -- ^ United States Minor Outlying Islands (the)
| UN -- ^ 'ExceptionalReservation': United Nations (the)
| US -- ^ United States of America (the)
| UY -- ^ Uruguay
| UZ -- ^ Uzbekistan
| VA -- ^ Holy See (the)
| VC -- ^ Saint Vincent and the Grenadines
| VD -- ^ 'Withdrawn': Viet Nam (Democratic Republic of)
| VE -- ^ Venezuela (Bolivarian Republic of)
| VG -- ^ Virgin Islands (British)
| VI -- ^ Virgin Islands (U.S.)
| VN -- ^ Viet Nam
| VU -- ^ Vanuatu
| WF -- ^ Wallis and Futuna
| WG -- ^ 'IndeterminateReservation': Grenada (road vehicles)
| WK -- ^ 'Withdrawn': Wake Island
| WL -- ^ 'IndeterminateReservation': Saint Lucia (road vehicles)
| WO -- ^ 'NotInUse': World Intellectual Property Organization
| WS -- ^ Samoa
| WV -- ^ 'IndeterminateReservation': Saint Vincent (road vehicles)
| YD -- ^ 'Withdrawn': Yemen (Democratic)
| YE -- ^ Yemen
| YT -- ^ Mayotte
| YU -- ^ 'TransitionalReservation': Yugoslavia
| YV -- ^ 'IndeterminateReservation': Venezuela (road vehicles)
| ZA -- ^ South Africa
| ZM -- ^ Zambia
| ZR -- ^ 'TransitionalReservation': Zaire
| ZW -- ^ Zimbabwe
deriving ( Eq, Show, Read, Ord, Enum, Bounded )
instance H.Hashable Alpha2 where
hashWithSalt = H.hashUsing fromEnum
-- | The stability of any particular country code.
codeStatus :: Alpha2 -> Status
codeStatus AC = ExceptionalReservation
codeStatus AN = TransitionalReservation
codeStatus AP = NotInUse
codeStatus BU = TransitionalReservation
codeStatus BX = NotInUse
codeStatus CP = ExceptionalReservation
codeStatus CS = TransitionalReservation
codeStatus CT = Withdrawn
codeStatus DD = Withdrawn
codeStatus DG = ExceptionalReservation
codeStatus DY = IndeterminateReservation
codeStatus EA = ExceptionalReservation
codeStatus EF = NotInUse
codeStatus EM = NotInUse
codeStatus EP = NotInUse
codeStatus EU = ExceptionalReservation
codeStatus EV = NotInUse
codeStatus EW = IndeterminateReservation
codeStatus EZ = ExceptionalReservation
codeStatus FL = IndeterminateReservation
codeStatus FQ = Withdrawn
codeStatus FX = ExceptionalReservation
codeStatus GC = NotInUse
codeStatus HV = Withdrawn
codeStatus IB = NotInUse
codeStatus IC = ExceptionalReservation
codeStatus JA = IndeterminateReservation
codeStatus JT = Withdrawn
codeStatus LF = IndeterminateReservation
codeStatus NT = TransitionalReservation
codeStatus MI = Withdrawn
codeStatus NH = Withdrawn
codeStatus NQ = Withdrawn
codeStatus OA = NotInUse
codeStatus PC = Withdrawn
codeStatus PI = IndeterminateReservation
codeStatus PU = Withdrawn
codeStatus PZ = Withdrawn
codeStatus RA = IndeterminateReservation
codeStatus RB = IndeterminateReservation
codeStatus RC = IndeterminateReservation
codeStatus RH = IndeterminateReservation
codeStatus RI = IndeterminateReservation
codeStatus RM = IndeterminateReservation
codeStatus RN = IndeterminateReservation
codeStatus RP = IndeterminateReservation
codeStatus SF = IndeterminateReservation
codeStatus SU = ExceptionalReservation
codeStatus TA = ExceptionalReservation
codeStatus TP = TransitionalReservation
codeStatus UK = ExceptionalReservation
codeStatus UN = ExceptionalReservation
codeStatus VD = Withdrawn
codeStatus WG = IndeterminateReservation
codeStatus WK = Withdrawn
codeStatus WL = IndeterminateReservation
codeStatus WO = NotInUse
codeStatus WV = IndeterminateReservation
codeStatus YD = Withdrawn
codeStatus YU = TransitionalReservation
codeStatus YV = IndeterminateReservation
codeStatus ZR = TransitionalReservation
codeStatus _ = Official