Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module provides template-haskell functions for various Base
definitions.
Synopsis
- quantityTH :: KnownNat s => Scientific -> Q (TExp (Quantity s))
- currencyTH :: Text -> Q (TExp Currency)
- currencyPairTH :: Text -> Text -> Q (TExp CurrencyPair)
Documentation
quantityTH :: KnownNat s => Scientific -> Q (TExp (Quantity s)) Source #
Constructs a Quantity
value at compile-time using -XTemplateHaskell
.
>>>
:set -XDataKinds
>>>
$$(quantityTH 0.00) :: Quantity 2
0.00>>>
$$(quantityTH 0.09) :: Quantity 2
0.09>>>
$$(quantityTH 0.009) :: Quantity 2
... ..."Underflow while trying to create quantity: 9.0e-3" ...>>>
$$(quantityTH 0.009) :: Quantity 3
0.009
currencyTH :: Text -> Q (TExp Currency) Source #
Constructs a Currency
value at compile-time using -XTemplateHaskell
.
>>>
$$(currencyTH "USD")
USD>>>
$$(currencyTH "usd")
... ...Currency code error! Expecting at least 3 uppercase characters, but received: "usd" ...
currencyPairTH :: Text -> Text -> Q (TExp CurrencyPair) Source #
Constructs a CurrencyPair
value at compile-time using -XTemplateHaskell
.
>>>
$$(currencyPairTH "EUR" "USD")
EUR/USD>>>
$$(currencyPairTH "USD" "USD")
... ...Can not create currency pair from same currencies: USD and USD ...>>>
$$(currencyPairTH "USD" "eur")
... ...Currency code error! Expecting at least 3 uppercase characters, but received: "eur" ...