    {-|

    A 'MarketPrice' represents a historical exchange rate between two
    commodities. (Ledger calls them historical prices.) For example, prices
    published by a stock exchange or the foreign exchange market.  Some
    commands (balance, currently) can use this information to show the market
    value of things at a given date.

    -}

    {-# LANGUAGE OverloadedStrings, LambdaCase #-}

    module Hledger.Data.MarketPrice
    where
    import qualified Data.Text as T
    import Test.HUnit

    import Hledger.Data.Amount
    import Hledger.Data.Dates
    import Hledger.Data.Types

    -- | Get the string representation of an market price, based on its
    -- commodity's display settings.
    showMarketPrice :: MarketPrice -> String
    showMarketPrice mp = unwords
        [ "P"
        , showDate (mpdate mp)
        , T.unpack (mpcommodity mp)
        , (showAmount . setAmountPrecision maxprecision) (mpamount mp)
        ]

    tests_Hledger_Data_MarketPrice = TestList []