-- | A Currency representation as specified in the ISO-4217 standard module Data.Currency where import Prelude hiding (Ordering (..)) import Control.Monad ((>=>)) import Data.Aeson as Aeson import Data.Aeson (FromJSON (..), ToJSON (..)) import Data.Bson (Val (..), (=:)) import qualified Data.Bson as Bson import Data.Data (Data) import Data.Text (Text) import Data.Typeable (Typeable) import GHC.Generics (Generic) import qualified Safe import System.Random (Random (..)) -- | Actual representation of a currency data Currency = Currency { alpha :: Alpha -- ^ Alpha Code , numeric :: Int -- ^ Numeric code , minor :: Int -- ^ Number of decimal units , name :: Text -- ^ English name } deriving (Show, Eq, Read, Generic, Data, Typeable) instance FromJSON Currency where parseJSON = Aeson.genericParseJSON Aeson.defaultOptions instance ToJSON Currency where toJSON = Aeson.genericToJSON Aeson.defaultOptions instance Val Currency where val Currency{..} = Bson.Doc [ "alpha" =: alpha , "numeric" =: numeric , "minor" =: minor , "name" =: name ] cast' v = case v of Bson.Doc doc -> Currency <$> Bson.lookup "alpha" doc <*> Bson.lookup "numeric" doc <*> Bson.lookup "minor" doc <*> Bson.lookup "name" doc _ -> Nothing instance Random Currency where random g = let (i, g') = randomR (0, length currencies - 1) g in (currencies !! i, g') randomR (a, b) g = let currencies' = dropWhile (/= a) $ takeWhile (/= b) currencies (i, g') = randomR (0, length currencies' - 1) g in (currencies' !! i, g') -- | A type which represents ISO 4217 alphabetic codes as an enum data Alpha = AED -- ^ UAE Dirham | AFN -- ^ Afghani | ALL -- ^ Lek | AMD -- ^ Armenian Dram | ANG -- ^ Netherlands Antillean Guilder | AOA -- ^ Kwanza | ARS -- ^ Argentine Peso | AUD -- ^ Australian Dollar | AWG -- ^ Aruban Florin | AZN -- ^ Azerbaijan Manat | BAM -- ^ Convertible Mark | BBD -- ^ Barbados Dollar | BDT -- ^ Taka | BGN -- ^ Bulgarian Lev | BHD -- ^ Bahraini Dinar | BIF -- ^ Burundi Franc | BMD -- ^ Bermudian Dollar | BND -- ^ Brunei Dollar | BOB -- ^ Boliviano | BOV -- ^ Mvdol | BRL -- ^ Brazilian Real | BSD -- ^ Bahamian Dollar | BTN -- ^ Ngultrum | BWP -- ^ Pula | BYN -- ^ Belarusian Ruble | BZD -- ^ Belize Dollar | CAD -- ^ Canadian Dollar | CDF -- ^ Congolese Franc | CHE -- ^ WIR Euro | CHF -- ^ Swiss Franc | CHW -- ^ WIR Franc | CLF -- ^ Unidad de Fomento | CLP -- ^ Chilean Peso | CNY -- ^ Yuan Renminbi | COP -- ^ Colombian Peso | COU -- ^ Unidad de Valor Real | CRC -- ^ Costa Rican Colon | CUC -- ^ Peso Convertible | CUP -- ^ Cuban Peso | CVE -- ^ Cabo Verde Escudo | CZK -- ^ Czech Koruna | DJF -- ^ Djibouti Franc | DKK -- ^ Danish Krone | DOP -- ^ Dominican Peso | DZD -- ^ Algerian Dinar | EGP -- ^ Egyptian Pound | ERN -- ^ Nakfa | ETB -- ^ Ethiopian Birr | EUR -- ^ Euro | FJD -- ^ Fiji Dollar | FKP -- ^ Falkland Islands Pound | GBP -- ^ Pound Sterling | GEL -- ^ Lari | GHS -- ^ Ghana Cedi | GIP -- ^ Gibraltar Pound | GMD -- ^ Dalasi | GNF -- ^ Guinean Franc | GTQ -- ^ Quetzal | GYD -- ^ Guyana Dollar | HKD -- ^ Hong Kong Dollar | HNL -- ^ Lempira | HRK -- ^ Kuna | HTG -- ^ Gourde | HUF -- ^ Forint | IDR -- ^ Rupiah | ILS -- ^ New Israeli Sheqel | INR -- ^ Indian Rupee | IQD -- ^ Iraqi Dinar | IRR -- ^ Iranian Rial | ISK -- ^ Iceland Krona | JMD -- ^ Jamaican Dollar | JOD -- ^ Jordanian Dinar | JPY -- ^ Yen | KES -- ^ Kenyan Shilling | KGS -- ^ Som | KHR -- ^ Riel | KMF -- ^ Comorian Franc | KPW -- ^ North Korean Won | KRW -- ^ Won | KWD -- ^ Kuwaiti Dinar | KYD -- ^ Cayman Islands Dollar | KZT -- ^ Tenge | LAK -- ^ Lao Kip | LBP -- ^ Lebanese Pound | LKR -- ^ Sri Lanka Rupee | LRD -- ^ Liberian Dollar | LSL -- ^ Loti | LYD -- ^ Libyan Dinar | MAD -- ^ Moroccan Dirham | MDL -- ^ Moldovan Leu | MGA -- ^ Malagasy Ariary | MKD -- ^ Denar | MMK -- ^ Kyat | MNT -- ^ Tugrik | MOP -- ^ Pataca | MRO -- ^ Ouguiya | MUR -- ^ Mauritius Rupee | MVR -- ^ Rufiyaa | MWK -- ^ Malawi Kwacha | MXN -- ^ Mexican Peso | MXV -- ^ Mexican Unidad de Inversion (UDI) | MYR -- ^ Malaysian Ringgit | MZN -- ^ Mozambique Metical | NAD -- ^ Namibia Dollar | NGN -- ^ Naira | NIO -- ^ Cordoba Oro | NOK -- ^ Norwegian Krone | NPR -- ^ Nepalese Rupee | NZD -- ^ New Zealand Dollar | OMR -- ^ Rial Omani | PAB -- ^ Balboa | PEN -- ^ Sol | PGK -- ^ Kina | PHP -- ^ Philippine Peso | PKR -- ^ Pakistan Rupee | PLN -- ^ Zloty | PYG -- ^ Guarani | QAR -- ^ Qatari Rial | RON -- ^ Romanian Leu | RSD -- ^ Serbian Dinar | RUB -- ^ Russian Ruble | RWF -- ^ Rwanda Franc | SAR -- ^ Saudi Riyal | SBD -- ^ Solomon Islands Dollar | SCR -- ^ Seychelles Rupee | SDG -- ^ Sudanese Pound | SEK -- ^ Swedish Krona | SGD -- ^ Singapore Dollar | SHP -- ^ Saint Helena Pound | SLL -- ^ Leone | SOS -- ^ Somali Shilling | SRD -- ^ Surinam Dollar | SSP -- ^ South Sudanese Pound | STD -- ^ Dobra | SVC -- ^ El Salvador Colon | SYP -- ^ Syrian Pound | SZL -- ^ Lilangeni | THB -- ^ Baht | TJS -- ^ Somoni | TMT -- ^ Turkmenistan New Manat | TND -- ^ Tunisian Dinar | TOP -- ^ Pa’anga | TRY -- ^ Turkish Lira | TTD -- ^ Trinidad and Tobago Dollar | TWD -- ^ New Taiwan Dollar | TZS -- ^ Tanzanian Shilling | UAH -- ^ Hryvnia | UGX -- ^ Uganda Shilling | USD -- ^ US Dollar | USN -- ^ US Dollar (Next day) | UYI -- ^ Uruguay Peso en Unidades Indexadas (URUIURUI) | UYU -- ^ Peso Uruguayo | UZS -- ^ Uzbekistan Sum | VEF -- ^ Bolívar | VND -- ^ Dong | VUV -- ^ Vatu | WST -- ^ Tala | XAF -- ^ CFA Franc BEAC | XAG -- ^ Silver | XAU -- ^ Gold | XBA -- ^ Bond Markets Unit European Composite Unit (EURCO) | XBB -- ^ Bond Markets Unit European Monetary Unit (E.M.U.-6) | XBC -- ^ Bond Markets Unit European Unit of Account 9 (E.U.A.-9) | XBD -- ^ Bond Markets Unit European Unit of Account 17 (E.U.A.-17) | XCD -- ^ East Caribbean Dollar | XDR -- ^ SDR (Special Drawing Right) | XOF -- ^ CFA Franc BCEAO | XPD -- ^ Palladium | XPF -- ^ CFP Franc | XPT -- ^ Platinum | XSU -- ^ Sucre | XTS -- ^ Codes specifically reserved for testing purposes | XUA -- ^ ADB Unit of Account | XXX -- ^ The codes assigned for transactions where no currency is involved | YER -- ^ Yemeni Rial | ZAR -- ^ Rand | ZMW -- ^ Zambian Kwacha | ZWL -- ^ Zimbabwe Dollar deriving (Show, Eq, Ord, Enum, Bounded, Read, Generic, Data, Typeable) instance FromJSON Alpha where parseJSON = Aeson.genericParseJSON Aeson.defaultOptions instance ToJSON Alpha where toJSON = Aeson.genericToJSON Aeson.defaultOptions instance Val Alpha where val = val . show cast' = cast' >=> Safe.readMay instance Random Alpha where random g = let (r, g') = randomR (fromEnum (minBound :: Alpha), fromEnum(maxBound :: Alpha)) g in (toEnum r, g') randomR (l, h) g = let (r, g') = randomR (fromEnum l, fromEnum h) g in (toEnum r, g') -- Constructor for all currencies unitOfAccount :: Currency unitOfAccount = Currency XUA 965 0 "ADB Unit of Account" afghani :: Currency afghani = Currency AFN 971 2 "Afghani" algerianDinar :: Currency algerianDinar = Currency DZD 012 2 "Algerian Dinar" argentinePeso :: Currency argentinePeso = Currency ARS 032 2 "Argentine Peso" armenianDram :: Currency armenianDram = Currency AMD 051 2 "Armenian Dram" arubanFlorin :: Currency arubanFlorin = Currency AWG 533 2 "Aruban Florin" australianDollar :: Currency australianDollar = Currency AUD 036 2 "Australian Dollar" azerbaijanManat :: Currency azerbaijanManat = Currency AZN 944 2 "Azerbaijan Manat" bahamianDollar :: Currency bahamianDollar = Currency BSD 044 2 "Bahamian Dollar" bahrainiDinar :: Currency bahrainiDinar = Currency BHD 048 3 "Bahraini Dinar" baht :: Currency baht = Currency THB 764 2 "Baht" balboa :: Currency balboa = Currency PAB 590 2 "Balboa" barbadosDollar :: Currency barbadosDollar = Currency BBD 052 2 "Barbados Dollar" belarusianRuble :: Currency belarusianRuble = Currency BYN 933 2 "Belarusian Ruble" belizeDollar :: Currency belizeDollar = Currency BZD 084 2 "Belize Dollar" bermudianDollar :: Currency bermudianDollar = Currency BMD 060 2 "Bermudian Dollar" boliviano :: Currency boliviano = Currency BOB 068 2 "Boliviano" bolívar :: Currency bolívar = Currency VEF 937 2 "Bolívar" bondMarketsCompositeUnit :: Currency bondMarketsCompositeUnit = Currency XBA 955 0 "Bond Markets Unit European Composite Unit (EURCO)" bondMarketsMonetaryUnit :: Currency bondMarketsMonetaryUnit = Currency XBB 956 0 "Bond Markets Unit European Monetary Unit (E.M.U.-6)" bondMarketsUnitofAccount17 :: Currency bondMarketsUnitofAccount17 = Currency XBD 958 0 "Bond Markets Unit European Unit of Account 17 (E.U.A.-17)" bondMarketsUnitofAccount9 :: Currency bondMarketsUnitofAccount9 = Currency XBC 957 0 "Bond Markets Unit European Unit of Account 9 (E.U.A.-9)" brazilianReal :: Currency brazilianReal = Currency BRL 986 2 "Brazilian Real" bruneiDollar :: Currency bruneiDollar = Currency BND 096 2 "Brunei Dollar" bulgarianLev :: Currency bulgarianLev = Currency BGN 975 2 "Bulgarian Lev" burundiFranc :: Currency burundiFranc = Currency BIF 108 0 "Burundi Franc" cfaFrancBCEAO :: Currency cfaFrancBCEAO = Currency XOF 952 0 "CFA Franc BCEAO" cfaFrancBEAC :: Currency cfaFrancBEAC = Currency XAF 950 0 "CFA Franc BEAC" cfpFranc :: Currency cfpFranc = Currency XPF 953 0 "CFP Franc" caboVerdeEscudo :: Currency caboVerdeEscudo = Currency CVE 132 2 "Cabo Verde Escudo" canadianDollar :: Currency canadianDollar = Currency CAD 124 2 "Canadian Dollar" caymanIslandsDollar :: Currency caymanIslandsDollar = Currency KYD 136 2 "Cayman Islands Dollar" chileanPeso :: Currency chileanPeso = Currency CLP 152 0 "Chilean Peso" testing :: Currency testing = Currency XTS 963 0 "Codes specifically reserved for testing purposes" colombianPeso :: Currency colombianPeso = Currency COP 170 2 "Colombian Peso" comorianFranc :: Currency comorianFranc = Currency KMF 174 0 "Comorian Franc" congoleseFranc :: Currency congoleseFranc = Currency CDF 976 2 "Congolese Franc" convertibleMark :: Currency convertibleMark = Currency BAM 977 2 "Convertible Mark" cordobaOro :: Currency cordobaOro = Currency NIO 558 2 "Cordoba Oro" costaRicanColon :: Currency costaRicanColon = Currency CRC 188 2 "Costa Rican Colon" cubanPeso :: Currency cubanPeso = Currency CUP 192 2 "Cuban Peso" czechKoruna :: Currency czechKoruna = Currency CZK 203 2 "Czech Koruna" dalasi :: Currency dalasi = Currency GMD 270 2 "Dalasi" danishKrone :: Currency danishKrone = Currency DKK 208 2 "Danish Krone" denar :: Currency denar = Currency MKD 807 2 "Denar" djiboutiFranc :: Currency djiboutiFranc = Currency DJF 262 0 "Djibouti Franc" dobra :: Currency dobra = Currency STD 678 2 "Dobra" dominicanPeso :: Currency dominicanPeso = Currency DOP 214 2 "Dominican Peso" dong :: Currency dong = Currency VND 704 0 "Dong" eastCaribbeanDollar :: Currency eastCaribbeanDollar = Currency XCD 951 2 "East Caribbean Dollar" egyptianPound :: Currency egyptianPound = Currency EGP 818 2 "Egyptian Pound" elSalvadorColon :: Currency elSalvadorColon = Currency SVC 222 2 "El Salvador Colon" ethiopianBirr :: Currency ethiopianBirr = Currency ETB 230 2 "Ethiopian Birr" euro :: Currency euro = Currency EUR 978 2 "Euro" falklandIslandsPound :: Currency falklandIslandsPound = Currency FKP 238 2 "Falkland Islands Pound" fijiDollar :: Currency fijiDollar = Currency FJD 242 2 "Fiji Dollar" forint :: Currency forint = Currency HUF 348 2 "Forint" ghanaCedi :: Currency ghanaCedi = Currency GHS 936 2 "Ghana Cedi" gibraltarPound :: Currency gibraltarPound = Currency GIP 292 2 "Gibraltar Pound" gold :: Currency gold = Currency XAU 959 0 "Gold" gourde :: Currency gourde = Currency HTG 332 2 "Gourde" guarani :: Currency guarani = Currency PYG 600 0 "Guarani" guineanFranc :: Currency guineanFranc = Currency GNF 324 0 "Guinean Franc" guyanaDollar :: Currency guyanaDollar = Currency GYD 328 2 "Guyana Dollar" hongKongDollar :: Currency hongKongDollar = Currency HKD 344 2 "Hong Kong Dollar" hryvnia :: Currency hryvnia = Currency UAH 980 2 "Hryvnia" icelandKrona :: Currency icelandKrona = Currency ISK 352 0 "Iceland Krona" indianRupee :: Currency indianRupee = Currency INR 356 2 "Indian Rupee" iranianRial :: Currency iranianRial = Currency IRR 364 2 "Iranian Rial" iraqiDinar :: Currency iraqiDinar = Currency IQD 368 3 "Iraqi Dinar" jamaicanDollar :: Currency jamaicanDollar = Currency JMD 388 2 "Jamaican Dollar" jordanianDinar :: Currency jordanianDinar = Currency JOD 400 3 "Jordanian Dinar" kenyanShilling :: Currency kenyanShilling = Currency KES 404 2 "Kenyan Shilling" kina :: Currency kina = Currency PGK 598 2 "Kina" kuna :: Currency kuna = Currency HRK 191 2 "Kuna" kuwaitiDinar :: Currency kuwaitiDinar = Currency KWD 414 3 "Kuwaiti Dinar" kwanza :: Currency kwanza = Currency AOA 973 2 "Kwanza" kyat :: Currency kyat = Currency MMK 104 2 "Kyat" laoKip :: Currency laoKip = Currency LAK 418 2 "Lao Kip" lari :: Currency lari = Currency GEL 981 2 "Lari" lebanesePound :: Currency lebanesePound = Currency LBP 422 2 "Lebanese Pound" lek :: Currency lek = Currency ALL 008 2 "Lek" lempira :: Currency lempira = Currency HNL 340 2 "Lempira" leone :: Currency leone = Currency SLL 694 2 "Leone" liberianDollar :: Currency liberianDollar = Currency LRD 430 2 "Liberian Dollar" libyanDinar :: Currency libyanDinar = Currency LYD 434 3 "Libyan Dinar" lilangeni :: Currency lilangeni = Currency SZL 748 2 "Lilangeni" loti :: Currency loti = Currency LSL 426 2 "Loti" malagasyAriary :: Currency malagasyAriary = Currency MGA 969 2 "Malagasy Ariary" malawiKwacha :: Currency malawiKwacha = Currency MWK 454 2 "Malawi Kwacha" malaysianRinggit :: Currency malaysianRinggit = Currency MYR 458 2 "Malaysian Ringgit" mauritiusRupee :: Currency mauritiusRupee = Currency MUR 480 2 "Mauritius Rupee" mexicanPeso :: Currency mexicanPeso = Currency MXN 484 2 "Mexican Peso" mexicanUnidadDeInversion :: Currency mexicanUnidadDeInversion = Currency MXV 979 2 "Mexican Unidad de Inversion (UDI)" moldovanLeu :: Currency moldovanLeu = Currency MDL 498 2 "Moldovan Leu" moroccanDirham :: Currency moroccanDirham = Currency MAD 504 2 "Moroccan Dirham" mozambiqueMetical :: Currency mozambiqueMetical = Currency MZN 943 2 "Mozambique Metical" mvdol :: Currency mvdol = Currency BOV 984 2 "Mvdol" naira :: Currency naira = Currency NGN 566 2 "Naira" nakfa :: Currency nakfa = Currency ERN 232 2 "Nakfa" namibiaDollar :: Currency namibiaDollar = Currency NAD 516 2 "Namibia Dollar" nepaleseRupee :: Currency nepaleseRupee = Currency NPR 524 2 "Nepalese Rupee" netherlandsAntilleanGuilder :: Currency netherlandsAntilleanGuilder = Currency ANG 532 2 "Netherlands Antillean Guilder" newIsraeliSheqel :: Currency newIsraeliSheqel = Currency ILS 376 2 "New Israeli Sheqel" newTaiwanDollar :: Currency newTaiwanDollar = Currency TWD 901 2 "New Taiwan Dollar" newZealandDollar :: Currency newZealandDollar = Currency NZD 554 2 "New Zealand Dollar" ngultrum :: Currency ngultrum = Currency BTN 064 2 "Ngultrum" northKoreanWon :: Currency northKoreanWon = Currency KPW 408 2 "North Korean Won" norwegianKrone :: Currency norwegianKrone = Currency NOK 578 2 "Norwegian Krone" ouguiya :: Currency ouguiya = Currency MRO 478 2 "Ouguiya" pakistanRupee :: Currency pakistanRupee = Currency PKR 586 2 "Pakistan Rupee" palladium :: Currency palladium = Currency XPD 964 0 "Palladium" pataca :: Currency pataca = Currency MOP 446 2 "Pataca" paanga :: Currency paanga = Currency TOP 776 2 "Pa’anga" pesoConvertible :: Currency pesoConvertible = Currency CUC 931 2 "Peso Convertible" pesoUruguayo :: Currency pesoUruguayo = Currency UYU 858 2 "Peso Uruguayo" philippinePeso :: Currency philippinePeso = Currency PHP 608 2 "Philippine Peso" platinum :: Currency platinum = Currency XPT 962 0 "Platinum" poundSterling :: Currency poundSterling = Currency GBP 826 2 "Pound Sterling" pula :: Currency pula = Currency BWP 072 2 "Pula" qatariRial :: Currency qatariRial = Currency QAR 634 2 "Qatari Rial" quetzal :: Currency quetzal = Currency GTQ 320 2 "Quetzal" rand :: Currency rand = Currency ZAR 710 2 "Rand" rialOmani :: Currency rialOmani = Currency OMR 512 3 "Rial Omani" riel :: Currency riel = Currency KHR 116 2 "Riel" romanianLeu :: Currency romanianLeu = Currency RON 946 2 "Romanian Leu" rufiyaa :: Currency rufiyaa = Currency MVR 462 2 "Rufiyaa" rupiah :: Currency rupiah = Currency IDR 360 2 "Rupiah" russianRuble :: Currency russianRuble = Currency RUB 643 2 "Russian Ruble" rwandaFranc :: Currency rwandaFranc = Currency RWF 646 0 "Rwanda Franc" sdr :: Currency sdr = Currency XDR 960 0 "SDR (Special Drawing Right)" saintHelenaPound :: Currency saintHelenaPound = Currency SHP 654 2 "Saint-Helena Pound" saudiRiyal :: Currency saudiRiyal = Currency SAR 682 2 "Saudi Riyal" serbianDinar :: Currency serbianDinar = Currency RSD 941 2 "Serbian Dinar" seychellesRupee :: Currency seychellesRupee = Currency SCR 690 2 "Seychelles Rupee" silver :: Currency silver = Currency XAG 961 0 "Silver" singaporeDollar :: Currency singaporeDollar = Currency SGD 702 2 "Singapore Dollar" sol :: Currency sol = Currency PEN 604 2 "Sol" solomonIslandsDollar :: Currency solomonIslandsDollar = Currency SBD 090 2 "Solomon Islands Dollar" som :: Currency som = Currency KGS 417 2 "Som" somaliShilling :: Currency somaliShilling = Currency SOS 706 2 "Somali Shilling" somoni :: Currency somoni = Currency TJS 972 2 "Somoni" southSudanesePound :: Currency southSudanesePound = Currency SSP 728 2 "South Sudanese Pound" sriLankaRupee :: Currency sriLankaRupee = Currency LKR 144 2 "Sri Lanka Rupee" sucre :: Currency sucre = Currency XSU 994 0 "Sucre" sudanesePound :: Currency sudanesePound = Currency SDG 938 2 "Sudanese Pound" surinamDollar :: Currency surinamDollar = Currency SRD 968 2 "Surinam Dollar" swedishKrona :: Currency swedishKrona = Currency SEK 752 2 "Swedish Krona" swissFranc :: Currency swissFranc = Currency CHF 756 2 "Swiss Franc" syrianPound :: Currency syrianPound = Currency SYP 760 2 "Syrian Pound" taka :: Currency taka = Currency BDT 050 2 "Taka" tala :: Currency tala = Currency WST 882 2 "Tala" tanzanianShilling :: Currency tanzanianShilling = Currency TZS 834 2 "Tanzanian Shilling" tenge :: Currency tenge = Currency KZT 398 2 "Tenge" noCurrency :: Currency noCurrency = Currency XXX 999 0 "The codes assigned for transactions where no currency is involved" trinidadAndTobagoDollar :: Currency trinidadAndTobagoDollar = Currency TTD 780 2 "Trinidad and Tobago Dollar" tugrik :: Currency tugrik = Currency MNT 496 2 "Tugrik" tunisianDinar :: Currency tunisianDinar = Currency TND 788 3 "Tunisian Dinar" turkishLira :: Currency turkishLira = Currency TRY 949 2 "Turkish Lira" turkmenistanNewManat :: Currency turkmenistanNewManat = Currency TMT 934 2 "Turkmenistan New Manat" uAEDirham :: Currency uAEDirham = Currency AED 784 2 "UAE Dirham" usDollar :: Currency usDollar = Currency USD 840 2 "US Dollar" usDollarNextday :: Currency usDollarNextday = Currency USN 997 2 "US Dollar (Next day)" ugandaShilling :: Currency ugandaShilling = Currency UGX 800 0 "Uganda" unidaddeFomento :: Currency unidaddeFomento = Currency CLF 990 4 "Unidad de Fomento" unidaddeValorReal :: Currency unidaddeValorReal = Currency COU 970 2 "Unidad de Valor Real" uruguayPesoEnUnidadesIndexadas :: Currency uruguayPesoEnUnidadesIndexadas = Currency UYI 940 0 "Uruguay Peso en Unidades Indexadas (URUIURUI)" uzbekistanSum :: Currency uzbekistanSum = Currency UZS 860 2 "Uzbekistan" vatu :: Currency vatu = Currency VUV 548 0 "Vatu" wirEuro :: Currency wirEuro = Currency CHE 947 2 "WIR Euro" wirFranc :: Currency wirFranc = Currency CHW 948 2 "WIR Franc" won :: Currency won = Currency KRW 410 0 "Won" yemeniRial :: Currency yemeniRial = Currency YER 886 2 "Yemeni Rial" yen :: Currency yen = Currency JPY 392 0 "Yen" yuanRenminbi :: Currency yuanRenminbi = Currency CNY 156 2 "Yuan Renminbi" zambianKwacha :: Currency zambianKwacha = Currency ZMW 967 2 "Zambian Kwacha" zimbabweDollar :: Currency zimbabweDollar = Currency ZWL 932 2 "Zimbabwe Dollar" zloty :: Currency zloty = Currency PLN 985 2 "Zloty" -- | List of all currencies in the standard currencies :: [Currency] currencies = [ unitOfAccount , afghani , algerianDinar , argentinePeso , armenianDram , arubanFlorin , australianDollar , azerbaijanManat , bahamianDollar , bahrainiDinar , baht , balboa , barbadosDollar , belarusianRuble , belizeDollar , bermudianDollar , boliviano , bolívar , bondMarketsCompositeUnit , bondMarketsMonetaryUnit , bondMarketsUnitofAccount17 , bondMarketsUnitofAccount9 , brazilianReal , bruneiDollar , bulgarianLev , burundiFranc , cfaFrancBCEAO , cfaFrancBEAC , cfpFranc , caboVerdeEscudo , canadianDollar , caymanIslandsDollar , chileanPeso , testing , colombianPeso , comorianFranc , congoleseFranc , convertibleMark , cordobaOro , costaRicanColon , cubanPeso , czechKoruna , dalasi , danishKrone , denar , djiboutiFranc , dobra , dominicanPeso , dong , eastCaribbeanDollar , egyptianPound , elSalvadorColon , ethiopianBirr , euro , falklandIslandsPound , fijiDollar , forint , ghanaCedi , gibraltarPound , gold , gourde , guarani , guineanFranc , guyanaDollar , hongKongDollar , hryvnia , icelandKrona , indianRupee , iranianRial , iraqiDinar , jamaicanDollar , jordanianDinar , kenyanShilling , kina , kuna , kuwaitiDinar , kwanza , kyat , laoKip , lari , lebanesePound , lek , lempira , leone , liberianDollar , libyanDinar , lilangeni , loti , malagasyAriary , malawiKwacha , malaysianRinggit , mauritiusRupee , mexicanPeso , mexicanUnidadDeInversion , moldovanLeu , moroccanDirham , mozambiqueMetical , mvdol , naira , nakfa , namibiaDollar , nepaleseRupee , netherlandsAntilleanGuilder , newIsraeliSheqel , newTaiwanDollar , newZealandDollar , ngultrum , northKoreanWon , norwegianKrone , ouguiya , pakistanRupee , palladium , pataca , paanga , pesoConvertible , pesoUruguayo , philippinePeso , platinum , poundSterling , pula , qatariRial , quetzal , rand , rialOmani , riel , romanianLeu , rufiyaa , rupiah , russianRuble , rwandaFranc , sdr , saintHelenaPound , saudiRiyal , serbianDinar , seychellesRupee , silver , singaporeDollar , sol , solomonIslandsDollar , som , somaliShilling , somoni , southSudanesePound , sriLankaRupee , sucre , sudanesePound , surinamDollar , swedishKrona , swissFranc , syrianPound , taka , tala , tanzanianShilling , tenge , noCurrency , trinidadAndTobagoDollar , tugrik , tunisianDinar , turkishLira , turkmenistanNewManat , uAEDirham , usDollar , usDollarNextday , ugandaShilling , unidaddeFomento , unidaddeValorReal , uruguayPesoEnUnidadesIndexadas , uzbekistanSum , vatu , wirEuro , wirFranc , won , yemeniRial , yen , yuanRenminbi , zambianKwacha , zloty , zimbabweDollar ]