úÎ6D0™]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\None6:<=ADRT/All of the information known about a commodity. €Commodities are simply indices into a commodity info map, which relates such commodities to the information known about them.XA commodities map, relating commodity indices to information about those commodities." Return a  with defaults selected for all fields. It is intended that at least one field of the result will be modified immediately.*  !"#$%&*+,-./$  !"#*+,$   !"#*+,    !"#$%&*+,-./None 6:<=ADRT]{The following A* algorithm was written by Cale Gibbard, and modified here to apply to IntMap's instead of general Map's.0‰This function computes an optimal (minimal distance) path through a graph in a best-first fashion, starting from a given starting point.1‹This function computes an optimal (minimal distance) path through a graph in a best-first fashion, starting from a given starting point.2ìLookup a price conversion from the source commodity to the target, using data from the given time or earlier. Result is Nothing if no conversion can be found, or else the best conversion ratio plus the time of the oldest link.3eAdd a price conversion in the form of a ratio between two commodities at a specific point in time.]^_`abcdef0[The graph we are searching through, given as a function from vertices to their neighbours.ƒHeuristic distance to the (nearest) goal. This should never overestimate the distance, or else the path found may not be minimal.8The goal, specified as a boolean predicate on vertices.#The vertex to start searching from.HAn optimal path, if any path exists. This excludes the starting vertex.1[The graph we are searching through, given as a function from vertices to their neighbours.ƒHeuristic distance to the (nearest) goal. This should never overestimate the distance, or else the path found may not be minimal.8The goal, specified as a boolean predicate on vertices.#The vertex to start searching from.HAn optimal path, if any path exists. This excludes the starting vertex.2Source commodityTarget commodity&Look for conversions on or before thisSet of commodities to search301232310]^_`abcdef0123None069:;<=ADORST5†A value representing either zero (all zeroes are equivalent), a commoditized value, or a vector space of values indexed by commodity.7An uncommoditized integer8A single commoditized amount9A vector-space over commodities%56789:@AghijklmBCDEFGHIJKLMNOPQRSTUVW 56978:@ABCDE 56789:EBCD@A56789:@AghijklmBCDEFGHIJKLMNOPQRSTUVWNone:DRSYZYZYZYZNone :DOPRST[n\[\[\[n\o      !"#$%&'()*+,-./0123456789:;<9=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_``abcdefghijklmnopq*commodities-0.2.0.1-3NBTXEWcxOHC0zOYkdsgkqLedger.CommodityLedger.Commodity.HistoryLedger.BalanceLedger.Commodity.ParseLedger.Commodity.Print CommodityInfo _commSymbol_commPrecision _commSuffixed_commSeparated_commThousands_commDecimalComma _commNoMarket _commBuiltin _commKnown _commPrimary _commHistory CommodityextendByDigits$fEqCommodityInfo$fReadCommodityInfo$fShowCommodityInfo CommodityMap _commoditiesHasCommodityInfo commodityInfo commBuiltincommDecimalComma commHistory commKnown commNoMarket commPrecision commPrimary commSeparated commSuffixed commSymbol commThousandsdefaultCommodityInfodefaultPrimaryCommodityInfo$fMonoidCommodityInfo$fSemigroupCommodityInfo$fHasCommodityInfoCommodityInfo$fEqCommodityMap$fReadCommodityMap$fShowCommodityMapHasCommodityMap commodityMap commodities$fMonoidCommodityMap$fSemigroupCommodityMap$fHasCommodityMapCommodityMap intAStarMintAStarfindConversion addConversion$fShowIntAStarBalanceZeroPlainAmount noCommodity $fEqBalance $fOrdBalance $fShowBalance $fReadBalance $fDataBalance BalanceErrorBalanceParseErrorinsertdelete balanceStore balanceSum$fExceptionBalanceError$fGroupBalance$fMonoidBalance$fSemigroupBalance$fTraversableBalance$fFoldableBalance$fAdjustableBalance $fTraversableWithIndexIntBalance$fFoldableWithIndexIntBalance$fFunctorWithIndexIntBalance$fIndexableBalance$fLookupBalance$fMonadBalance $fBindBalance$fApplyBalance$fApplicativeBalance$fFunctorBalance$fAdditiveBalance$fShowBalanceError parseBalance balanceParser printBalancebalanceIntAStarvisitedwaitingscorememoHeurcameFromend intAStarInit runIntAStarMGroupinverse_Zero_Plain_Amount_Balancenon'' buildBalance