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