<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Hledger.Data.Amount</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Hledger-Data-Amount.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >hledger-lib-0.14: Reusable types and utilities for the hledger accounting tool and financial apps in general.</TD ><TD CLASS="topbut" ><A HREF="src/Hledger-Data-Amount.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Hledger.Data.Amount</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" ><P >An <TT ><A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TT > is some quantity of money, shares, or anything else. </P ><P >A simple amount is a <TT ><A HREF="Hledger-Data-Types.html#t%3ACommodity" >Commodity</A ></TT >, quantity pair: </P ><PRE > $1 -50 EUR 3.44 GOOG 500 1.5h 90 apples 0 </PRE ><P >An amount may also have a per-unit price, or conversion rate, in terms of some other commodity. If present, this is displayed after @: </P ><PRE > EUR 3 @ $1.35 </PRE ><P >A <TT ><A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TT > 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.): </P ><PRE > $50 + EUR 3 16h + $13.55 + AAPL 500 + 6 oranges 0 </PRE ><P >We can do limited arithmetic with simple or mixed amounts: either price-preserving arithmetic with similarly-priced amounts, or price-discarding arithmetic which ignores and discards prices. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3Aamounts" >amounts</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> [<A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcanonicaliseAmount" >canonicaliseAmount</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Map.html#t%3AMap" >Map</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > <A HREF="Hledger-Data-Types.html#t%3ACommodity" >Commodity</A >) -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcanonicaliseMixedAmount" >canonicaliseMixedAmount</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Map.html#t%3AMap" >Map</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > <A HREF="Hledger-Data-Types.html#t%3ACommodity" >Commodity</A >) -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AconvertMixedAmountToSimilarCommodity" >convertMixedAmountToSimilarCommodity</A > :: <A HREF="Hledger-Data-Types.html#t%3ACommodity" >Commodity</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcostOfAmount" >costOfAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcostOfMixedAmount" >costOfMixedAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdivideAmount" >divideAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdivideMixedAmount" >divideMixedAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisNegativeMixedAmount" >isNegativeMixedAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisReallyZeroMixedAmountCost" >isReallyZeroMixedAmountCost</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisZeroMixedAmount" >isZeroMixedAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Amaxprecision" >maxprecision</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Amaxprecisionwithpoint" >maxprecisionwithpoint</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Amissingamt" >missingamt</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnormaliseMixedAmount" >normaliseMixedAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anullamt" >nullamt</A > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anullmixedamt" >nullmixedamt</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Apunctuatethousands" >punctuatethousands</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetAmountPrecision" >setAmountPrecision</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetMixedAmountPrecision" >setMixedAmountPrecision</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowAmountDebug" >showAmountDebug</A > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowMixedAmount" >showMixedAmount</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowMixedAmountDebug" >showMixedAmountDebug</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowMixedAmountOrZero" >showMixedAmountOrZero</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowMixedAmountOrZeroWithoutPrice" >showMixedAmountOrZeroWithoutPrice</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowMixedAmountWithoutPrice" >showMixedAmountWithoutPrice</A > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowMixedAmountWithPrecision" >showMixedAmountWithPrecision</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsumMixedAmountsPreservingHighestPrecision" >sumMixedAmountsPreservingHighestPrecision</A > :: [<A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A >] -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atests_Hledger_Data_Amount" >tests_Hledger_Data_Amount</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/HUnit-1.2.2.1/Test-HUnit-Base.html#t%3ATest" >Test</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:amounts" ><A NAME="v%3Aamounts" ></A ></A ><B >amounts</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> [<A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A >]</TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#amounts" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Access a mixed amount's components. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:canonicaliseAmount" ><A NAME="v%3AcanonicaliseAmount" ></A ></A ><B >canonicaliseAmount</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Map.html#t%3AMap" >Map</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > <A HREF="Hledger-Data-Types.html#t%3ACommodity" >Commodity</A >) -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#canonicaliseAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Set an amount's commodity to the canonicalised commodity from the provided commodity map. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:canonicaliseMixedAmount" ><A NAME="v%3AcanonicaliseMixedAmount" ></A ></A ><B >canonicaliseMixedAmount</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Map.html#t%3AMap" >Map</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > <A HREF="Hledger-Data-Types.html#t%3ACommodity" >Commodity</A >) -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#canonicaliseMixedAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Set a mixed amount's commodity to the canonicalised commodity from the provided commodity map. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:convertMixedAmountToSimilarCommodity" ><A NAME="v%3AconvertMixedAmountToSimilarCommodity" ></A ></A ><B >convertMixedAmountToSimilarCommodity</B > :: <A HREF="Hledger-Data-Types.html#t%3ACommodity" >Commodity</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#convertMixedAmountToSimilarCommodity" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Convert a mixed amount to the specified commodity, assuming an exchange rate of 1. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:costOfAmount" ><A NAME="v%3AcostOfAmount" ></A ></A ><B >costOfAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#costOfAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Convert an amount to the commodity of its saved price, if any. Notes: - price amounts must be MixedAmounts with exactly one component Amount (or there will be a runtime error) - price amounts should be positive, though this is not currently enforced </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:costOfMixedAmount" ><A NAME="v%3AcostOfMixedAmount" ></A ></A ><B >costOfMixedAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#costOfMixedAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Convert a mixed amount's component amounts to the commodity of their saved price, if any. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:divideAmount" ><A NAME="v%3AdivideAmount" ></A ></A ><B >divideAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#divideAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Divide an amount's quantity by some constant. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:divideMixedAmount" ><A NAME="v%3AdivideMixedAmount" ></A ></A ><B >divideMixedAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#divideMixedAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Divide a mixed amount's quantities by some constant. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isNegativeMixedAmount" ><A NAME="v%3AisNegativeMixedAmount" ></A ></A ><B >isNegativeMixedAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#isNegativeMixedAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Is this mixed amount negative, if it can be normalised to a single commodity ? </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isReallyZeroMixedAmountCost" ><A NAME="v%3AisReallyZeroMixedAmountCost" ></A ></A ><B >isReallyZeroMixedAmountCost</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#isReallyZeroMixedAmountCost" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Is this mixed amount <A HREF="really.html" >really</A > zero, after converting to cost commodities where possible ? </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isZeroMixedAmount" ><A NAME="v%3AisZeroMixedAmount" ></A ></A ><B >isZeroMixedAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#isZeroMixedAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Does this mixed amount appear to be zero when displayed with its given precision ? </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:maxprecision" ><A NAME="v%3Amaxprecision" ></A ></A ><B >maxprecision</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#maxprecision" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:maxprecisionwithpoint" ><A NAME="v%3Amaxprecisionwithpoint" ></A ></A ><B >maxprecisionwithpoint</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#maxprecisionwithpoint" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:missingamt" ><A NAME="v%3Amissingamt" ></A ></A ><B >missingamt</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#missingamt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A temporary value for parsed transactions which had no amount specified. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:normaliseMixedAmount" ><A NAME="v%3AnormaliseMixedAmount" ></A ></A ><B >normaliseMixedAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#normaliseMixedAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Simplify a mixed amount by removing redundancy in its component amounts, as follows: 1. sum amounts which have the same commodity (ignoring their price) 2. remove zero amounts 3. if there are no amounts at all, add a single zero amount </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:nullamt" ><A NAME="v%3Anullamt" ></A ></A ><B >nullamt</B > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#nullamt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The empty simple amount. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:nullmixedamt" ><A NAME="v%3Anullmixedamt" ></A ></A ><B >nullmixedamt</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#nullmixedamt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The empty mixed amount. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:punctuatethousands" ><A NAME="v%3Apunctuatethousands" ></A ></A ><B >punctuatethousands</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#punctuatethousands" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Add thousands-separating commas to a decimal number string </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:setAmountPrecision" ><A NAME="v%3AsetAmountPrecision" ></A ></A ><B >setAmountPrecision</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#setAmountPrecision" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:setMixedAmountPrecision" ><A NAME="v%3AsetMixedAmountPrecision" ></A ></A ><B >setMixedAmountPrecision</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#setMixedAmountPrecision" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showAmountDebug" ><A NAME="v%3AshowAmountDebug" ></A ></A ><B >showAmountDebug</B > :: <A HREF="Hledger-Data-Types.html#t%3AAmount" >Amount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#showAmountDebug" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get the unambiguous string representation of an amount, for debugging. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showMixedAmount" ><A NAME="v%3AshowMixedAmount" ></A ></A ><B >showMixedAmount</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#showMixedAmount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get the string representation of a mixed amount, showing each of its component amounts. NB a mixed amount can have an empty amounts list in which case it shows as "". </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showMixedAmountDebug" ><A NAME="v%3AshowMixedAmountDebug" ></A ></A ><B >showMixedAmountDebug</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#showMixedAmountDebug" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get an unambiguous string representation of a mixed amount for debugging. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showMixedAmountOrZero" ><A NAME="v%3AshowMixedAmountOrZero" ></A ></A ><B >showMixedAmountOrZero</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#showMixedAmountOrZero" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get the string representation of a mixed amount, and if it appears to be all zero just show a bare 0, ledger-style. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showMixedAmountOrZeroWithoutPrice" ><A NAME="v%3AshowMixedAmountOrZeroWithoutPrice" ></A ></A ><B >showMixedAmountOrZeroWithoutPrice</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#showMixedAmountOrZeroWithoutPrice" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get the string representation of a mixed amount, or a bare 0, without any @ prices. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showMixedAmountWithoutPrice" ><A NAME="v%3AshowMixedAmountWithoutPrice" ></A ></A ><B >showMixedAmountWithoutPrice</B > :: <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#showMixedAmountWithoutPrice" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get the string representation of a mixed amount, but without any @ prices. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showMixedAmountWithPrecision" ><A NAME="v%3AshowMixedAmountWithPrecision" ></A ></A ><B >showMixedAmountWithPrecision</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#showMixedAmountWithPrecision" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get the string representation of a mixed amount, showing each of its component amounts with the specified precision, ignoring their commoditys' display precision settings. NB a mixed amount can have an empty amounts list in which case it shows as "". </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:sumMixedAmountsPreservingHighestPrecision" ><A NAME="v%3AsumMixedAmountsPreservingHighestPrecision" ></A ></A ><B >sumMixedAmountsPreservingHighestPrecision</B > :: [<A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A >] -> <A HREF="Hledger-Data-Types.html#t%3AMixedAmount" >MixedAmount</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#sumMixedAmountsPreservingHighestPrecision" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:tests_Hledger_Data_Amount" ><A NAME="v%3Atests_Hledger_Data_Amount" ></A ></A ><B >tests_Hledger_Data_Amount</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/HUnit-1.2.2.1/Test-HUnit-Base.html#t%3ATest" >Test</A ></TD ><TD CLASS="declbut" ><A HREF="src/Hledger-Data-Amount.html#tests_Hledger_Data_Amount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >