The currency-codes package

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

Warnings:

ISO-4217 Currency Codes


[Skip to ReadMe]

Properties

Versions1.0.0.0, 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.0.0.3, 2.0.0.0
Change logCHANGELOG.md
Dependenciesaeson, base (>=4.7 && <5), bson, lens, random, safe, swagger2, text [details]
LicenseMIT
Copyright(c) 2017 Chordify
AuthorChordify
MaintainerMatthias Benkort <matthias@chordify.net>
CategoryData
Home pagehttps://gitlab.com
Bug trackerhttps://github.com/bos/aeson/issues
UploadedMon Aug 28 14:43:34 UTC 2017 by KtorZ

Modules

Downloads

Maintainers' corner

For package maintainers and hackage trustees


Readme for currency-codes-1.0.0.0

[back to package description]

Currency Codes (ISO-4217)

Overview

This package mainly provides 2 data types to represent and manipulate currencies according to the ISO 4217 standard.

It also provides a handful of instances for common typeclasses (Show, Read, Random, ToJSON, FromJSON, Val, ToSchema).

Example

import           Data.Aeson     (ToJSON(..))
import qualified Data.Aeson     as Aeson
import           Data.Currency  (Currency, Alpha)
import qualified Data.Currency  as Currency
import           GHC.Generics   (Generic)
import qualified Safe


myCurrencies :: [Currency]
myCurrencies =
  [Currency.eur, Currency.usdDollar]

fromAlpha :: Alpha -> [Currency] -> Maybe Currency
fromAlpha α =
  Safe.headMay . filter (== α)


data Transaction = Transaction
  { amount   :: Integer
  , currency :: Currency
  } deriving (Eq, Show, Generic)

instance ToJSON Transaction where
  toJSON = 
    Aeson.genericToJSON Aeson.defaultOptions

Changelog

CHANGELOG.md

License

MIT © 2017 Chordify