An amount of money in the smallest discrete unit of a particular currency.
wrap 256 :: Discrete GBP would represent £2.56, whereas
wrap 256 :: Discrete JPY would represent ¥256. If you want to work with
higher granularity, you can define your own currency type.
showDiscrete :: forall c. Currency c => Discrete c -> String
Show the discrete value with the correct number of decimals. Will not prepend the currency sign. Negative amounts are prefixed with a hyphen-minus.
showDiscrete (Discrete 256 :: Discrete GBP) == "2.56"
showDiscrete (Discrete (-256) :: Discrete GBP) == "-2.56"