{-# LANGUAGE OverloadedStrings #-}
module Hledger.Data.Currency (
currencies,
currencySymbolToCode,
currencyCodeToSymbol,
)
where
import qualified Data.Map as M
import Data.Text (Text)
type CurrencyCode = Text
type CurrencySymbol = Text
currencySymbolToCode :: CurrencySymbol -> Maybe CurrencyCode
currencySymbolToCode :: CurrencyCode -> Maybe CurrencyCode
currencySymbolToCode CurrencyCode
s = CurrencyCode -> Map CurrencyCode CurrencyCode -> Maybe CurrencyCode
forall k a. Ord k => k -> Map k a -> Maybe a
M.lookup CurrencyCode
s Map CurrencyCode CurrencyCode
currencyCodesBySymbol
currencyCodeToSymbol :: CurrencyCode -> Maybe CurrencySymbol
currencyCodeToSymbol :: CurrencyCode -> Maybe CurrencyCode
currencyCodeToSymbol CurrencyCode
c = CurrencyCode -> Map CurrencyCode CurrencyCode -> Maybe CurrencyCode
forall k a. Ord k => k -> Map k a -> Maybe a
M.lookup CurrencyCode
c Map CurrencyCode CurrencyCode
currencySymbolsByCode
currencyCodesBySymbol :: Map CurrencyCode CurrencyCode
currencyCodesBySymbol = [(CurrencyCode, CurrencyCode)] -> Map CurrencyCode CurrencyCode
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList [(CurrencyCode
s,CurrencyCode
c) | (String
_,CurrencyCode
c,CurrencyCode
s) <- [(String, CurrencyCode, CurrencyCode)]
currencies]
currencySymbolsByCode :: Map CurrencyCode CurrencyCode
currencySymbolsByCode = [(CurrencyCode, CurrencyCode)] -> Map CurrencyCode CurrencyCode
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList [(CurrencyCode
c,CurrencyCode
s) | (String
_,CurrencyCode
c,CurrencyCode
s) <- [(String, CurrencyCode, CurrencyCode)]
currencies]
currencies :: [(String, CurrencyCode, CurrencyCode)]
currencies = [
(String
"Albania Lek", CurrencyCode
"ALL", CurrencyCode
"Lek"),
(String
"Afghanistan Afghani", CurrencyCode
"AFN", CurrencyCode
"؋"),
(String
"Argentina Peso", CurrencyCode
"ARS", CurrencyCode
"$"),
(String
"Aruba Guilder", CurrencyCode
"AWG", CurrencyCode
"ƒ"),
(String
"Australia Dollar", CurrencyCode
"AUD", CurrencyCode
"$"),
(String
"Azerbaijan Manat", CurrencyCode
"AZN", CurrencyCode
"₼"),
(String
"Bahamas Dollar", CurrencyCode
"BSD", CurrencyCode
"$"),
(String
"Barbados Dollar", CurrencyCode
"BBD", CurrencyCode
"$"),
(String
"Belarus Ruble", CurrencyCode
"BYN", CurrencyCode
"Br"),
(String
"Belize Dollar", CurrencyCode
"BZD", CurrencyCode
"BZ$"),
(String
"Bermuda Dollar", CurrencyCode
"BMD", CurrencyCode
"$"),
(String
"Bolivia Bolíviano", CurrencyCode
"BOB", CurrencyCode
"$b"),
(String
"Bosnia and Herzegovina Convertible Mark", CurrencyCode
"BAM", CurrencyCode
"KM"),
(String
"Botswana Pula", CurrencyCode
"BWP", CurrencyCode
"P"),
(String
"Bulgaria Lev", CurrencyCode
"BGN", CurrencyCode
"лв"),
(String
"Brazil Real", CurrencyCode
"BRL", CurrencyCode
"R$"),
(String
"Brunei Darussalam Dollar", CurrencyCode
"BND", CurrencyCode
"$"),
(String
"Cambodia Riel", CurrencyCode
"KHR", CurrencyCode
"៛"),
(String
"Canada Dollar", CurrencyCode
"CAD", CurrencyCode
"$"),
(String
"Cayman Islands Dollar", CurrencyCode
"KYD", CurrencyCode
"$"),
(String
"Chile Peso", CurrencyCode
"CLP", CurrencyCode
"$"),
(String
"China Yuan Renminbi", CurrencyCode
"CNY", CurrencyCode
"¥"),
(String
"Colombia Peso", CurrencyCode
"COP", CurrencyCode
"$"),
(String
"Costa Rica Colon", CurrencyCode
"CRC", CurrencyCode
"₡"),
(String
"Croatia Kuna", CurrencyCode
"HRK", CurrencyCode
"kn"),
(String
"Cuba Peso", CurrencyCode
"CUP", CurrencyCode
"₱"),
(String
"Czech Republic Koruna", CurrencyCode
"CZK", CurrencyCode
"Kč"),
(String
"Denmark Krone", CurrencyCode
"DKK", CurrencyCode
"kr"),
(String
"Dominican Republic Peso", CurrencyCode
"DOP", CurrencyCode
"RD$"),
(String
"East Caribbean Dollar", CurrencyCode
"XCD", CurrencyCode
"$"),
(String
"Egypt Pound", CurrencyCode
"EGP", CurrencyCode
"£"),
(String
"El Salvador Colon", CurrencyCode
"SVC", CurrencyCode
"$"),
(String
"Euro Member Countries", CurrencyCode
"EUR", CurrencyCode
"€"),
(String
"Falkland Islands (Malvinas) Pound", CurrencyCode
"FKP", CurrencyCode
"£"),
(String
"Fiji Dollar", CurrencyCode
"FJD", CurrencyCode
"$"),
(String
"Ghana Cedi", CurrencyCode
"GHS", CurrencyCode
"¢"),
(String
"Gibraltar Pound", CurrencyCode
"GIP", CurrencyCode
"£"),
(String
"Guatemala Quetzal", CurrencyCode
"GTQ", CurrencyCode
"Q"),
(String
"Guernsey Pound", CurrencyCode
"GGP", CurrencyCode
"£"),
(String
"Guyana Dollar", CurrencyCode
"GYD", CurrencyCode
"$"),
(String
"Honduras Lempira", CurrencyCode
"HNL", CurrencyCode
"L"),
(String
"Hong Kong Dollar", CurrencyCode
"HKD", CurrencyCode
"$"),
(String
"Hungary Forint", CurrencyCode
"HUF", CurrencyCode
"Ft"),
(String
"Iceland Krona", CurrencyCode
"ISK", CurrencyCode
"kr"),
(String
"India Rupee", CurrencyCode
"INR", CurrencyCode
"₹"),
(String
"Indonesia Rupiah", CurrencyCode
"IDR", CurrencyCode
"Rp"),
(String
"Iran Rial", CurrencyCode
"IRR", CurrencyCode
"﷼"),
(String
"Isle of Man Pound", CurrencyCode
"IMP", CurrencyCode
"£"),
(String
"Israel Shekel", CurrencyCode
"ILS", CurrencyCode
"₪"),
(String
"Jamaica Dollar", CurrencyCode
"JMD", CurrencyCode
"J$"),
(String
"Japan Yen", CurrencyCode
"JPY", CurrencyCode
"¥"),
(String
"Jersey Pound", CurrencyCode
"JEP", CurrencyCode
"£"),
(String
"Kazakhstan Tenge", CurrencyCode
"KZT", CurrencyCode
"лв"),
(String
"Korea (North) Won", CurrencyCode
"KPW", CurrencyCode
"₩"),
(String
"Korea (South) Won", CurrencyCode
"KRW", CurrencyCode
"₩"),
(String
"Kyrgyzstan Som", CurrencyCode
"KGS", CurrencyCode
"лв"),
(String
"Laos Kip", CurrencyCode
"LAK", CurrencyCode
"₭"),
(String
"Lebanon Pound", CurrencyCode
"LBP", CurrencyCode
"£"),
(String
"Liberia Dollar", CurrencyCode
"LRD", CurrencyCode
"$"),
(String
"Macedonia Denar", CurrencyCode
"MKD", CurrencyCode
"ден"),
(String
"Malaysia Ringgit", CurrencyCode
"MYR", CurrencyCode
"RM"),
(String
"Mauritius Rupee", CurrencyCode
"MUR", CurrencyCode
"₨"),
(String
"Mexico Peso", CurrencyCode
"MXN", CurrencyCode
"$"),
(String
"Mongolia Tughrik", CurrencyCode
"MNT", CurrencyCode
"₮"),
(String
"Mozambique Metical", CurrencyCode
"MZN", CurrencyCode
"MT"),
(String
"Namibia Dollar", CurrencyCode
"NAD", CurrencyCode
"$"),
(String
"Nepal Rupee", CurrencyCode
"NPR", CurrencyCode
"₨"),
(String
"Netherlands Antilles Guilder", CurrencyCode
"ANG", CurrencyCode
"ƒ"),
(String
"New Zealand Dollar", CurrencyCode
"NZD", CurrencyCode
"$"),
(String
"Nicaragua Cordoba", CurrencyCode
"NIO", CurrencyCode
"C$"),
(String
"Nigeria Naira", CurrencyCode
"NGN", CurrencyCode
"₦"),
(String
"Norway Krone", CurrencyCode
"NOK", CurrencyCode
"kr"),
(String
"Oman Rial", CurrencyCode
"OMR", CurrencyCode
"﷼"),
(String
"Pakistan Rupee", CurrencyCode
"PKR", CurrencyCode
"₨"),
(String
"Panama Balboa", CurrencyCode
"PAB", CurrencyCode
"B/."),
(String
"Paraguay Guarani", CurrencyCode
"PYG", CurrencyCode
"Gs"),
(String
"Peru Sol", CurrencyCode
"PEN", CurrencyCode
"S/."),
(String
"Philippines Peso", CurrencyCode
"PHP", CurrencyCode
"₱"),
(String
"Poland Zloty", CurrencyCode
"PLN", CurrencyCode
"zł"),
(String
"Qatar Riyal", CurrencyCode
"QAR", CurrencyCode
"﷼"),
(String
"Romania Leu", CurrencyCode
"RON", CurrencyCode
"lei"),
(String
"Russia Ruble", CurrencyCode
"RUB", CurrencyCode
"₽"),
(String
"Saint Helena Pound", CurrencyCode
"SHP", CurrencyCode
"£"),
(String
"Saudi Arabia Riyal", CurrencyCode
"SAR", CurrencyCode
"﷼"),
(String
"Serbia Dinar", CurrencyCode
"RSD", CurrencyCode
"Дин."),
(String
"Seychelles Rupee", CurrencyCode
"SCR", CurrencyCode
"₨"),
(String
"Singapore Dollar", CurrencyCode
"SGD", CurrencyCode
"$"),
(String
"Solomon Islands Dollar", CurrencyCode
"SBD", CurrencyCode
"$"),
(String
"Somalia Shilling", CurrencyCode
"SOS", CurrencyCode
"S"),
(String
"South Africa Rand", CurrencyCode
"ZAR", CurrencyCode
"R"),
(String
"Sri Lanka Rupee", CurrencyCode
"LKR", CurrencyCode
"₨"),
(String
"Sweden Krona", CurrencyCode
"SEK", CurrencyCode
"kr"),
(String
"Switzerland Franc", CurrencyCode
"CHF", CurrencyCode
"CHF"),
(String
"Suriname Dollar", CurrencyCode
"SRD", CurrencyCode
"$"),
(String
"Syria Pound", CurrencyCode
"SYP", CurrencyCode
"£"),
(String
"Taiwan New Dollar", CurrencyCode
"TWD", CurrencyCode
"NT$"),
(String
"Thailand Baht", CurrencyCode
"THB", CurrencyCode
"฿"),
(String
"Trinidad and Tobago Dollar", CurrencyCode
"TTD", CurrencyCode
"TT$"),
(String
"Turkey Lira", CurrencyCode
"TRY", CurrencyCode
"₺"),
(String
"Tuvalu Dollar", CurrencyCode
"TVD", CurrencyCode
"$"),
(String
"Ukraine Hryvnia", CurrencyCode
"UAH", CurrencyCode
"₴"),
(String
"United Kingdom Pound", CurrencyCode
"GBP", CurrencyCode
"£"),
(String
"United States Dollar", CurrencyCode
"USD", CurrencyCode
"$"),
(String
"Uruguay Peso", CurrencyCode
"UYU", CurrencyCode
"$U"),
(String
"Uzbekistan Som", CurrencyCode
"UZS", CurrencyCode
"лв"),
(String
"Venezuela Bolívar", CurrencyCode
"VEF", CurrencyCode
"Bs"),
(String
"Viet Nam Dong", CurrencyCode
"VND", CurrencyCode
"₫"),
(String
"Yemen Rial", CurrencyCode
"YER", CurrencyCode
"﷼"),
(String
"Zimbabwe Dollar", CurrencyCode
"ZWD", CurrencyCode
"Z$")
]