diff --git a/Ledger/Amount.hs b/Ledger/Amount.hs index ea42bee6a..29023b5c2 100644 --- a/Ledger/Amount.hs +++ b/Ledger/Amount.hs @@ -10,30 +10,27 @@ A simple amount is a 'Commodity', quantity pair: EUR 3.44 GOOG 500 1.5h - 90apples + 90 apples 0 @ -A 'MixedAmount' is zero or more simple amounts: - -@ - $50 + EUR 3 - 16h + $13.55 + AAPL 500 + 6 oranges -@ - -Amounts often have a price per unit, or conversion rate, in terms of -another commodity. If present, this is displayed after \@: +An amount may also have a per-unit price, or conversion rate, in terms +of some other commodity. If present, this is displayed after \@: @ EUR 3 \@ $1.35 @ -A normalised mixed amount has at most one amount in each commodity-price, -and no zero amounts (or it has just a single zero amount and no others.) +A 'MixedAmount' is zero or more simple amounts. Mixed amounts are +usually normalised so that there is no more than one amount in each +commodity, and no zero amounts (or, there is just a single zero amount +and no others.): -In principle we can convert an amount to any other commodity to which we -have a known sequence of conversion rates; in practice we only do one -conversion step (eg to show cost basis with -B). +@ + $50 + EUR 3 + 16h + $13.55 + AAPL 500 + 6 oranges + 0 +@ We can do limited arithmetic with simple or mixed amounts: either price-preserving arithmetic with similarly-priced amounts, or