Modulehledger-lib-1.52.4GHC2021
Hledger.Data
The Hledger.Data library allows parsing and querying of C++ ledger-style journal files. It generally provides a compatible subset of C++ ledger's functionality. This package re-exports all the Hledger.Data.* modules (except UTF8, which requires an explicit import.)
- 62 types
- 1 class
- 22 values
- Packagehledger-lib-1.52.4
- Exports88
- LanguageGHC2021
- LicenceGPL-3.0-or-later
- SourceData.hs
module Hledger.Data.Account
module Hledger.Data.AccountName
module Hledger.Data.Amount
module Hledger.Data.BalanceData
module Hledger.Data.Balancing
module Hledger.Data.Currency
module Hledger.Data.Dates
module Hledger.Data.DayPartition
module Hledger.Data.Errors
module Hledger.Data.Journal
module Hledger.Data.JournalChecks
module Hledger.Data.Json
module Hledger.Data.Ledger
module Hledger.Data.Period
module Hledger.Data.PeriodData
module Hledger.Data.Posting
module Hledger.Data.RawOptions
module Hledger.Data.StringFormat
module Hledger.Data.Timeclock
module Hledger.Data.Transaction
Check whether the first argument is a subtype of the second: either equal or one of the defined subtypes.
Does this tag name begin with the hidden tag prefix (_) ?
Compare two MixedAmounts, substituting 0 for the quantity of any missing commodities in either.
Add the _ prefix to a normal visible tag's name, making it a hidden tag.
Add the _ prefix to a normal visible tag's name, making it a hidden tag.
Drop the _ prefix from a hidden tag's name, making it a normal visible tag.
Drop the _ prefix from a hidden tag's name, making it a normal visible tag.
An account within a hierarchy, with references to its parent
and subaccounts if any, and with per-report-period data of type a.
Only the name is required; the other fields may or may not be present.
Constructors
Accountaname :: AccountNamefull name
adeclarationinfo :: Maybe AccountDeclarationInfooptional extra info from account directives relationships in the tree
asubs :: [Account a]subaccounts
aparent :: Maybe (Account a)parent account
aboring :: Boolused in some reports to indicate elidable accounts
adata :: PeriodData aassociated data per report period
Instances8Functor, Eq, Show, Generic, FromJSON, ToJSON, …
Functor AccountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesEq (Account a)Defined in hledger-lib-1.52.4 · Hledger.Data.Account · orphanShow a => Show (Account a)Defined in hledger-lib-1.52.4 · Hledger.Data.Account · orphanGeneric (Account a)Defined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON a => FromJSON (Account a)Defined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON a => ToJSON (Account a)Defined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts a => HasAmounts (Account a)Defined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphantype Rep (Account a) = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Account"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Account"
'PrefixI 'True) ((S1 ('MetaSel ('Just"aname"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 AccountName) :*: (S1 ('MetaSel ('Just"adeclarationinfo"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe AccountDeclarationInfo)) :*: S1 ('MetaSel ('Just"asubs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Account a]))) :*: (S1 ('MetaSel ('Just"aparent"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (Account a))) :*: (S1 ('MetaSel ('Just"aboring"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just"adata"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (PeriodData a))))))
Constructors
Instances8Eq, Ord, Read, Show, Generic, NFData, …
Eq AccountAliasDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd AccountAliasDefined in hledger-lib-1.52.4 · Hledger.Data.TypesRead AccountAliasDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow AccountAliasDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric AccountAliasDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData AccountAliasDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON AccountAliasDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep AccountAlias = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"AccountAlias"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"BasicAlias"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 AccountName) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 AccountName)) :+: C1 ('MetaCons"RegexAlias"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Regexp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Replacement)))
Extra information about an account that can be derived from its account directive (and the other account directives).
Constructors
AccountDeclarationInfoadicomment :: Textany comment lines following an account directive for this account
adideclarationorder :: Intthe order in which this account was declared, relative to other account declarations, during parsing (1..)
adisourcepos :: SourcePossource file and position
Instances7Eq, Show, Generic, NFData, FromJSON, ToJSON, …
Eq AccountDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow AccountDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric AccountDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData AccountDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON AccountDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON AccountDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep AccountDeclarationInfo = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"AccountDeclarationInfo"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"AccountDeclarationInfo"
'PrefixI 'True) ((S1 ('MetaSel ('Just"adicomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"aditags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Tag])) :*: (S1 ('MetaSel ('Just"adideclarationorder"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Just"adisourcepos"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 SourcePos))))
Constructors
AssetLiabilityEquityRevenueExpenseCasha subtype of Asset - liquid assets to show in cashflow report
Conversiona subtype of Equity - account with which to balance commodity conversions
Gaina subtype of Revenue - realised capital gains/losses
UnrealisedGaina subtype of Equity - accumulated unrealised capital gains/losses (used by hledger 2)
Instances8Eq, Ord, Show, Generic, NFData, ToJSON, …
Eq AccountTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd AccountTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow AccountTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric AccountTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData AccountTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON AccountTypeDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSONKey AccountTypeDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep AccountType = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"AccountType"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (((C1 ('MetaCons"Asset"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Liability"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"Equity"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Revenue"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"Expense"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Cash"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"Conversion"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Gain"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnrealisedGain"
'PrefixI 'False) U1))))
Constructors
Amountacommodity :: !CommoditySymbolaquantity :: !Quantityastyle :: !AmountStyleacost :: !Maybe AmountCosttransacted exchange rate - the unit or total cost, in another commodity, used for this amount within its transaction
acostbasis :: !Maybe CostBasisthe cost basis of an investment lot represented by this amount. Or, a matcher to select such a lot from the available lots.
Instances10Eq, Num, Ord, Show, Generic, NFData, …
Eq AmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNum AmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanOrd AmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow AmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric AmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData AmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON AmountDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON AmountDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts AmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphantype Rep Amount = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Amount"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Amount"
'PrefixI 'True) ((S1 ('MetaSel ('Just"acommodity"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CommoditySymbol) :*: S1 ('MetaSel ('Just"aquantity"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Quantity)) :*: (S1 ('MetaSel ('Just"astyle"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AmountStyle) :*: (S1 ('MetaSel ('Just"acost"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe AmountCost)) :*: S1 ('MetaSel ('Just"acostbasis"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe CostBasis))))))
An amount's per-unit or total cost/selling price in another
commodity, as recorded in the journal entry eg with or @.
Cost, formerly AKA "transaction price". The amount is always positive.
Instances8Eq, Ord, Show, Generic, NFData, FromJSON, …
Eq AmountCostDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd AmountCostDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow AmountCostDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric AmountCostDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData AmountCostDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON AmountCostDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON AmountCostDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep AmountCost = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"AmountCost"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"UnitCost"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Amount)) :+: C1 ('MetaCons"TotalCost"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Amount)))
The "display precision" for a hledger amount, by which we mean the number of decimal digits to display to the right of the decimal mark.
Constructors
Precision !Word8show this many decimal digits (0..255)
NaturalPrecisionshow all significant decimal digits stored internally
Instances9Eq, Ord, Read, Show, Generic, NFData, …
Eq AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesRead AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON AmountPrecisionDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep AmountPrecision = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"AmountPrecision"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Precision"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word8)) :+: C1 ('MetaCons"NaturalPrecision"
'PrefixI 'False) U1)
Display styles for amounts - things which can be detected during parsing, such as
commodity side and spacing, digit group marks, decimal mark, number of decimal digits etc.
Every Amount has an AmountStyle.
After amounts are parsed from the input, for each Commodity a standard style is inferred
and then used when displaying amounts in that commodity.
Related to AmountFormat but higher level.
See also: - hledger manual > Commodity styles - hledger manual > Amounts - hledger manual > Commodity display style
Constructors
AmountStyleascommodityside :: !Sideshow the symbol on the left or the right ?
ascommodityspaced :: !Boolshow a space between symbol and quantity ?
asdigitgroups :: !Maybe DigitGroupStyleshow the integer part with these digit group marks, or not
asdecimalmark :: !Maybe Charshow this character (should be . or ,) as decimal mark, or use the default (.)
asprecision :: !AmountPrecision"display precision" - show this number of digits after the decimal point
asrounding :: !Rounding"rounding strategy" - kept here for convenience, for now: when displaying an amount, it is ignored, but when applying this style to another amount, it determines how hard we should try to adjust that amount's display precision.
Instances9Eq, Ord, Read, Show, Generic, NFData, …
Eq AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesRead AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON AmountStyleDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep AmountStyle = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"AmountStyle"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"AmountStyle"
'PrefixI 'True) ((S1 ('MetaSel ('Just"ascommodityside"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Side) :*: (S1 ('MetaSel ('Just"ascommodityspaced"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just"asdigitgroups"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe DigitGroupStyle)))) :*: (S1 ('MetaSel ('Just"asdecimalmark"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Char)) :*: (S1 ('MetaSel ('Just"asprecision"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AmountPrecision) :*: S1 ('MetaSel ('Just"asrounding"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Rounding)))))
A balance assertion is a declaration about an account's expected balance at a certain point (posting date and parse order). They provide additional error checking and readability to a journal file.
A balance assignments is an instruction to hledger to adjust an account's balance to a certain amount at a certain point.
The BalanceAssertion type is used for representing both of these.
hledger supports multiple kinds of balance assertions/assignments, which differ in whether they refer to a single commodity or all commodities, and the (subaccount-)inclusive or exclusive account balance.
Constructors
BalanceAssertionbaamount :: Amountthe expected balance in a particular commodity
batotal :: Booldisallow additional non-asserted commodities ?
bainclusive :: Boolinclude subaccounts when calculating the actual balance ?
baposition :: SourcePosthe assertion's file position, for error reporting
Instances8Eq, Show, Generic, NFData, FromJSON, ToJSON, …
Eq BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.Posting · orphantype Rep BalanceAssertion = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"BalanceAssertion"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"BalanceAssertion"
'PrefixI 'True) ((S1 ('MetaSel ('Just"baamount"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Amount) :*: S1 ('MetaSel ('Just"batotal"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"bainclusive"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just"baposition"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 SourcePos))))
Data that's useful in "balance" reports: subaccount-exclusive and -inclusive amounts, typically representing either a balance change or an end balance; and a count of postings.
Constructors
BalanceDatabdexcludingsubs :: MixedAmountbalance data excluding subaccounts
bdincludingsubs :: MixedAmountbalance data including subaccounts
bdnumpostings :: Intthe number of postings
Instances9Eq, Show, Generic, Semigroup, Monoid, FromJSON, …
Eq BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.BalanceData · orphanGeneric BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.TypesSemigroup BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.BalanceData · orphanMonoid BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.BalanceData · orphanFromJSON BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphantype Rep BalanceData = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"BalanceData"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"BalanceData"
'PrefixI 'True) (S1 ('MetaSel ('Just"bdexcludingsubs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 MixedAmount) :*: (S1 ('MetaSel ('Just"bdincludingsubs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 MixedAmount) :*: S1 ('MetaSel ('Just"bdnumpostings"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int))))
Constructors
Commoditycsymbol :: CommoditySymbolcformat :: Maybe AmountStyleccomment :: Textany comment lines following the commodity directive
Instances6Eq, Show, Generic, NFData, ToJSON, Rep
Eq CommodityDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow CommodityDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric CommodityDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData CommodityDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON CommodityDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep Commodity = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Commodity"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Commodity"
'PrefixI 'True) ((S1 ('MetaSel ('Just"csymbol"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CommoditySymbol) :*: S1 ('MetaSel ('Just"cformat"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe AmountStyle))) :*: (S1 ('MetaSel ('Just"ccomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"ctags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Tag]))))
The cost basis of an individual lot - some quantity of an asset acquired at a given date and time. This can represent a definite cost basis, which must have a cost and date; the label is optional. Or it can represent a cost basis matcher for selecting lots. Note: cost is always stored as a per-unit cost, even if the user specified total cost with {{}}.
Instances8Eq, Ord, Show, Generic, NFData, FromJSON, …
Eq CostBasisDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd CostBasisDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow CostBasisDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric CostBasisDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData CostBasisDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON CostBasisDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON CostBasisDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep CostBasis = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"CostBasis"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"CostBasis"
'PrefixI 'True) (S1 ('MetaSel ('Just"cbCost"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Amount)) :*: (S1 ('MetaSel ('Just"cbDate"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Day)) :*: S1 ('MetaSel ('Just"cbLabel"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Text)))))
A possibly open-ended span of time, from an optional inclusive start date to an optional exclusive end date. Each date can be either exact or flexible. An "exact date span" is a Datepan with exact start and end dates.
Instances8Eq, Ord, Show, Generic, NFData, ToJSON, …
Eq DateSpanDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd DateSpanDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow DateSpanDefined in hledger-lib-1.52.4 · Hledger.Data.Dates · orphanGeneric DateSpanDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData DateSpanDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON DateSpanDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanDefault DateSpanDefined in hledger-lib-1.52.4 · Hledger.Data.Typestype Rep DateSpan = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"DateSpan"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"DateSpan"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe EFDay)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe EFDay))))
One of the decimal marks we support: either period or comma.
Constructors
DepthSpecdsFlatDepth :: Maybe IntdsRegexpDepths :: [(Regexp, Int)]
A style for displaying digit groups in the integer part of a floating point number. It consists of the character used to separate groups (comma or period, whichever is not used as decimal point), and the size of each group, starting with the one nearest the decimal point. The last group size is assumed to repeat. Eg, comma between thousands is DigitGroups ',' [3].
Constructors
DigitGroups !Char ![Word8]
Instances9Eq, Ord, Read, Show, Generic, NFData, …
Eq DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesRead DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON DigitGroupStyleDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep DigitGroupStyle = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"DigitGroupStyle"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"DigitGroups"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Char) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Word8])))
A date which is either exact or flexible. Flexible dates are allowed to be adjusted in certain situations.
Instances7Eq, Ord, Show, Generic, NFData, ToJSON, …
Eq EFDayDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd EFDayDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow EFDayDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric EFDayDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData EFDayDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON EFDayDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep EFDay = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"EFDay"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Exact"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day)) :+: C1 ('MetaCons"Flex"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day)))
Types with this class have one or more amounts, which can have display styles applied to them.
Methods
styleAmounts :: Map CommoditySymbol AmountStyle -> a -> a
Instances18HasAmounts, …
HasAmounts AmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanHasAmounts BalanceAssertionDefined in hledger-lib-1.52.4 · Hledger.Data.Posting · orphanHasAmounts BalanceDataDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanHasAmounts MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanHasAmounts PostingDefined in hledger-lib-1.52.4 · Hledger.Data.Posting · orphanHasAmounts TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.Transaction · orphanHasAmounts AccountTransactionsReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.AccountTransactionsReport · orphanHasAmounts BalanceReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.BalanceReport · orphanHasAmounts PostingsReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.PostingsReport · orphanHasAmounts a => HasAmounts (Maybe a)Defined in hledger-lib-1.52.4 · Hledger.Data.TypesHasAmounts a => HasAmounts (Account a)Defined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanHasAmounts a => HasAmounts (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanHasAmounts a => HasAmounts [a]Defined in hledger-lib-1.52.4 · Hledger.Data.TypesHasAmounts b => HasAmounts (CompoundPeriodicReport a b)Defined in hledger-lib-1.52.4 · Hledger.Reports.ReportTypesHasAmounts b => HasAmounts (PeriodicReport a b)Defined in hledger-lib-1.52.4 · Hledger.Reports.ReportTypesHasAmounts b => HasAmounts (PeriodicReportRow a b)Defined in hledger-lib-1.52.4 · Hledger.Reports.ReportTypes(HasAmounts a, HasAmounts b) => HasAmounts (a, b)Defined in hledger-lib-1.52.4 · Hledger.Data.TypesHasAmounts b => HasAmounts (Text, PeriodicReport a b, Bool)Defined in hledger-lib-1.52.4 · Hledger.Reports.ReportTypes
Instances8Eq, Ord, Show, Generic, NFData, ToJSON, …
Eq IntervalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd IntervalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow IntervalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric IntervalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData IntervalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON IntervalDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanDefault IntervalDefined in hledger-lib-1.52.4 · Hledger.Data.Typestype Rep Interval = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Interval"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (((C1 ('MetaCons"NoInterval"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Days"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int))) :+: (C1 ('MetaCons"Weeks"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int)) :+: (C1 ('MetaCons"Months"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int)) :+: C1 ('MetaCons"Quarters"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int))))) :+: ((C1 ('MetaCons"Years"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int)) :+: C1 ('MetaCons"NthWeekdayOfMonth"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int))) :+: (C1 ('MetaCons"MonthDay"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int)) :+: (C1 ('MetaCons"MonthAndDay"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Int)) :+: C1 ('MetaCons"DaysOfWeek"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Int]))))))
A journal, containing general ledger transactions; also directives and various other things. This is hledger's main data model.
During parsing, it is used as the type alias ParsedJournal.
The jparse* fields are mainly used during parsing and included here for convenience.
The list fields described as "in parse order" are usually reversed for efficiency during parsing.
After parsing, "journalFinalise" converts ParsedJournal to a finalised Journal,
which has all lists correctly ordered, and much data inference and validation applied.
Constructors
Journaljparsedefaultyear :: Maybe Yearthe current default year, specified by the most recent Y directive (or current date)
jparsedefaultcommodity :: Maybe (CommoditySymbol, AmountStyle)the current default commodity and its format, specified by the most recent D directive
jparsedecimalmark :: Maybe DecimalMarkthe character to always parse as decimal point, if set by CsvReader's decimal-mark (or a future journal directive)
jparseparentaccounts :: [AccountName]the current stack of parent account names, specified by apply account directives
jparsealiases :: [AccountAlias]the current account name aliases in effect, specified by alias directives (& options ?) ,jparsetransactioncount :: Integer -- ^ the current count of transactions parsed so far (only journal format txns, currently)
jparsetimeclockentries :: [TimeclockEntry]timeclock sessions which have not been clocked out
jincludefilestack :: [(FilePath, FilePath)](absolute path, canonical path) of included files, most recent first principal data
jdeclaredpayees :: [(Payee, PayeeDeclarationInfo)]Payees declared by payee directives, in parse order.
jdeclaredaccounts :: [(AccountName, AccountDeclarationInfo)]Accounts declared by account directives, in parse order.
jdeclaredaccounttypes :: Map AccountType [AccountName]Accounts which were declared with a type: tag, grouped by the type.
jaccounttypes :: Map AccountName AccountTypeAll the account types known, from account declarations or account names or parent accounts.
jdeclaredcommodities :: Map CommoditySymbol CommodityCommodities (and their display styles) declared by commodity directives, in parse order.
jinferredcommoditystyles :: Map CommoditySymbol AmountStyleCommodity display styles inferred from amounts in the journal.
jglobalcommoditystyles :: Map CommoditySymbol AmountStyleCommodity display styles declared by command line options (sometimes augmented, see the import command).
jpricedirectives :: [PriceDirective]P (market price) directives in the journal, in parse order.
jinferredmarketprices :: [MarketPrice]Market prices inferred from transactions in the journal, in parse order.
jtxnmodifiers :: [TransactionModifier]Auto posting rules declared in the journal.
jperiodictxns :: [PeriodicTransaction]Periodic transaction rules declared in the journal.
jtxns :: [Transaction]Transactions recorded in the journal. The important bit.
jfinalcommentlines :: Textany final trailing comments in the (main) journal file
jfiles :: [(FilePath, Text)]the file path and raw text of the main and any included journal files. The main file is first, followed by any included files in the order encountered. TODO: FilePath is a sloppy type here, don't assume it's a real file; values like "" or "-" can be seen
jlastreadtime :: POSIXTimewhen this journal was last read from its file(s) NOTE: after adding new fields, eg involving account names, consider updating the Anon instance in Hleger.Cli.Anon
Instances8Eq, Show, Generic, Semigroup, NFData, ToJSON, …
Eq JournalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow JournalDefined in hledger-lib-1.52.4 · Hledger.Data.Journal · orphanGeneric JournalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesSemigroup JournalDefined in hledger-lib-1.52.4 · Hledger.Data.Journal · orphanNFData JournalDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON JournalDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanDefault JournalDefined in hledger-lib-1.52.4 · Hledger.Data.Journal · orphantype Rep Journal = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Journal"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Journal"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"jparsedefaultyear"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Year)) :*: (S1 ('MetaSel ('Just"jparsedefaultcommodity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (CommoditySymbol, AmountStyle))) :*: S1 ('MetaSel ('Just"jparsedecimalmark"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe DecimalMark)))) :*: (S1 ('MetaSel ('Just"jparseparentaccounts"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [AccountName]) :*: (S1 ('MetaSel ('Just"jparsealiases"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [AccountAlias]) :*: S1 ('MetaSel ('Just"jparsetimeclockentries"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [TimeclockEntry])))) :*: ((S1 ('MetaSel ('Just"jincludefilestack"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [(FilePath, FilePath)]) :*: (S1 ('MetaSel ('Just"jdeclaredpayees"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [(Payee, PayeeDeclarationInfo)]) :*: S1 ('MetaSel ('Just"jdeclaredtags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [(TagName, TagDeclarationInfo)]))) :*: (S1 ('MetaSel ('Just"jdeclaredaccounts"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [(AccountName, AccountDeclarationInfo)]) :*: (S1 ('MetaSel ('Just"jdeclaredaccounttags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map AccountName [Tag])) :*: S1 ('MetaSel ('Just"jdeclaredaccounttypes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map AccountType [AccountName])))))) :*: (((S1 ('MetaSel ('Just"jaccounttypes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map AccountName AccountType)) :*: (S1 ('MetaSel ('Just"jdeclaredcommodities"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map CommoditySymbol Commodity)) :*: S1 ('MetaSel ('Just"jdeclaredcommoditytags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map CommoditySymbol [Tag])))) :*: (S1 ('MetaSel ('Just"jinferredcommoditystyles"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map CommoditySymbol AmountStyle)) :*: (S1 ('MetaSel ('Just"jglobalcommoditystyles"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map CommoditySymbol AmountStyle)) :*: S1 ('MetaSel ('Just"jpricedirectives"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [PriceDirective])))) :*: ((S1 ('MetaSel ('Just"jinferredmarketprices"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [MarketPrice]) :*: (S1 ('MetaSel ('Just"jtxnmodifiers"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [TransactionModifier]) :*: S1 ('MetaSel ('Just"jperiodictxns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [PeriodicTransaction]))) :*: ((S1 ('MetaSel ('Just"jtxns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Transaction]) :*: S1 ('MetaSel ('Just"jfinalcommentlines"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just"jfiles"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [(FilePath, Text)]) :*: S1 ('MetaSel ('Just"jlastreadtime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 POSIXTime)))))))
A Ledger has the journal it derives from, and the accounts derived from that. Accounts are accessible both list-wise and tree-wise, since each one knows its parent and subs; the first account is the root of the tree and always exists.
Instances4Show, Generic, ToJSON, Rep
Show LedgerDefined in hledger-lib-1.52.4 · Hledger.Data.Ledger · orphanGeneric LedgerDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON LedgerDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep Ledger = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Ledger"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Ledger"
'PrefixI 'True) (S1 ('MetaSel ('Just"ljournal"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Journal) :*: S1 ('MetaSel ('Just"laccounts"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Account BalanceData])))
A historical market price (exchange rate) from one commodity to another. A more concise form of a PriceDirective, without the amount display info.
Constructors
MarketPricempdate :: DayDate on which this price becomes effective.
mpfrom :: CommoditySymbolThe commodity being converted from.
mpto :: CommoditySymbolThe commodity being converted to.
mprate :: QuantityOne unit of the "from" commodity is worth this quantity of the "to" commodity.
Instances8Eq, Ord, Show, Generic, NFData, FromJSON, …
Eq MarketPriceDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd MarketPriceDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow MarketPriceDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric MarketPriceDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData MarketPriceDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON MarketPriceDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON MarketPriceDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep MarketPrice = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"MarketPrice"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"MarketPrice"
'PrefixI 'True) ((S1 ('MetaSel ('Just"mpdate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day) :*: S1 ('MetaSel ('Just"mpfrom"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CommoditySymbol)) :*: (S1 ('MetaSel ('Just"mpto"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CommoditySymbol) :*: S1 ('MetaSel ('Just"mprate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Quantity))))
Instances15Eq, Num, Ord, Show, Generic, Semigroup, …
Eq MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNum MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanOrd MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesSemigroup MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanMonoid MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanNFData MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts MixedAmountDefined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphanHasAmounts AccountTransactionsReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.AccountTransactionsReport · orphanHasAmounts BalanceReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.BalanceReport · orphanHasAmounts PostingsReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.PostingsReport · orphantype Rep MixedAmount = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"MixedAmount"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'True) (C1 ('MetaCons"Mixed"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map MixedAmountKey Amount))))
Whether an account's balance is normally a positive number (in accounting terms, a debit balance) or a negative number (credit balance). Assets and expenses are normally positive (debit), while liabilities, equity and income are normally negative (credit). https://en.wikipedia.org/wiki/Normal_balance
Instances2Eq, Show
Eq NormalSignDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow NormalSignDefined in hledger-lib-1.52.4 · Hledger.Data.Types
A journal in the process of being parsed, not yet finalised. The data is partial, and list fields are in reverse order.
Extra information found in a payee directive.
Constructors
PayeeDeclarationInfopdicomment :: Textany comment lines following the payee directive
Instances6Eq, Show, Generic, NFData, ToJSON, Rep
Eq PayeeDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow PayeeDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric PayeeDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData PayeeDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON PayeeDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep PayeeDeclarationInfo = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"PayeeDeclarationInfo"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"PayeeDeclarationInfo"
'PrefixI 'True) (S1 ('MetaSel ('Just"pdicomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"pditags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Tag])))
Instances8Eq, Ord, Show, Generic, ToJSON, Default, …
Eq PeriodDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd PeriodDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow PeriodDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric PeriodDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON PeriodDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanDefault PeriodDefined in hledger-lib-1.52.4 · Hledger.Data.TypesHasAmounts PostingsReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.PostingsReport · orphantype Rep Period = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Period"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (((C1 ('MetaCons"DayPeriod"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day)) :+: C1 ('MetaCons"WeekPeriod"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day))) :+: (C1 ('MetaCons"MonthPeriod"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Year) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Month)) :+: C1 ('MetaCons"QuarterPeriod"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Year) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 Quarter)))) :+: ((C1 ('MetaCons"YearPeriod"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Year)) :+: C1 ('MetaCons"PeriodBetween"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day))) :+: (C1 ('MetaCons"PeriodFrom"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day)) :+: (C1 ('MetaCons"PeriodTo"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day)) :+: C1 ('MetaCons"PeriodAll"
'PrefixI 'False) U1))))
A general container for storing data values associated with zero or more contiguous report (sub)periods, and with the (open ended) pre-report period. The report periods are typically all the same length, but need not be.
Report periods are represented only by their start dates, used as the keys of a Map.
Constructors
Instances14Functor, Foldable, Traversable, Foldable1, Eq, Ord, …
Functor PeriodDataDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFoldable PeriodDataDefined in hledger-lib-1.52.4 · Hledger.Data.PeriodData · orphanTraversable PeriodDataDefined in hledger-lib-1.52.4 · Hledger.Data.PeriodData · orphanFoldable1 PeriodDataDefined in hledger-lib-1.52.4 · Hledger.Data.PeriodData · orphanEq a => Eq (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd a => Ord (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.TypesShow a => Show (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.PeriodData · orphanGeneric (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.TypesSemigroup a => Semigroup (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.PeriodData · orphanThe Semigroup instance for PeriodData simply takes the union of keys in the date map section. This may not be the result you want if the keys are not identical.
Monoid a => Monoid (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.PeriodData · orphanFromJSON a => FromJSON (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON a => ToJSON (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts a => HasAmounts (PeriodData a)Defined in hledger-lib-1.52.4 · Hledger.Data.Amount · orphantype Rep (PeriodData a) = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"PeriodData"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"PeriodData"
'PrefixI 'True) (S1 ('MetaSel ('Just"pdpre"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Just"pdperiods"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Map Day a))))
A periodic transaction rule, describing a transaction that recurs.
Constructors
PeriodicTransactionptperiodexpr :: Textthe period expression as written
ptinterval :: Intervalthe interval at which this transaction recurs
ptspan :: DateSpanthe (possibly unbounded) period during which this transaction recurs. Contains a whole number of intervals.
ptsourcepos :: (SourcePos, SourcePos)the file position where the period expression starts, and where the last posting ends
ptstatus :: Statussome of Transaction's fields
ptcode :: Textptdescription :: Textptcomment :: Textptpostings :: [Posting]
Instances6Eq, Show, Generic, NFData, ToJSON, Rep
Eq PeriodicTransactionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow PeriodicTransactionDefined in hledger-lib-1.52.4 · Hledger.Data.PeriodicTransaction · orphanGeneric PeriodicTransactionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData PeriodicTransactionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON PeriodicTransactionDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep PeriodicTransaction = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"PeriodicTransaction"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"PeriodicTransaction"
'PrefixI 'True) (((S1 ('MetaSel ('Just"ptperiodexpr"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"ptinterval"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Interval)) :*: (S1 ('MetaSel ('Just"ptspan"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DateSpan) :*: (S1 ('MetaSel ('Just"ptsourcepos"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (SourcePos, SourcePos)) :*: S1 ('MetaSel ('Just"ptstatus"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Status)))) :*: ((S1 ('MetaSel ('Just"ptcode"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"ptdescription"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just"ptcomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: (S1 ('MetaSel ('Just"pttags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Tag]) :*: S1 ('MetaSel ('Just"ptpostings"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Posting]))))))
Constructors
Postingpdate :: Maybe Daythis posting's date, if different from the transaction's
pdate2 :: Maybe Daythis posting's secondary date, if different from the transaction's
pstatus :: Statuspaccount :: AccountNamepamount :: MixedAmountpcomment :: Textthis posting's comment lines, as a single non-indented multi-line string
ptype :: PostingTypepbalanceassertion :: Maybe BalanceAssertionan expected balance in the account after this posting, in a single commodity, excluding subaccounts.
ptransaction :: Maybe Transactionthis posting's parent transaction (co-recursive types). Tying this knot gets tedious, Maybe makes it easier/optional.
poriginal :: Maybe PostingWhen this posting has been transformed in some way (eg its amount or cost was inferred, or the account name was changed by a pivot or budget report), this references the original untransformed posting (which will have Nothing in this field).
Instances9Eq, Show, Generic, NFData, FromJSON, ToJSON, …
Eq PostingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow PostingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesPosting's show instance elides the parent transaction so as not to recurse forever.
Generic PostingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData PostingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON PostingDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON PostingDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts PostingDefined in hledger-lib-1.52.4 · Hledger.Data.Posting · orphanHasAmounts PostingsReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.PostingsReport · orphantype Rep Posting = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Posting"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Posting"
'PrefixI 'True) (((S1 ('MetaSel ('Just"pdate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Day)) :*: S1 ('MetaSel ('Just"pdate2"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Day))) :*: (S1 ('MetaSel ('Just"pstatus"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Status) :*: (S1 ('MetaSel ('Just"paccount"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 AccountName) :*: S1 ('MetaSel ('Just"pamount"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 MixedAmount)))) :*: ((S1 ('MetaSel ('Just"pcomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: (S1 ('MetaSel ('Just"ptype"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PostingType) :*: S1 ('MetaSel ('Just"ptags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Tag]))) :*: (S1 ('MetaSel ('Just"pbalanceassertion"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe BalanceAssertion)) :*: (S1 ('MetaSel ('Just"ptransaction"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Transaction)) :*: S1 ('MetaSel ('Just"poriginal"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Posting)))))))
Instances7Eq, Show, Generic, NFData, FromJSON, ToJSON, …
Eq PostingTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow PostingTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric PostingTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData PostingTypeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON PostingTypeDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON PostingTypeDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep PostingType = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"PostingType"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"RegularPosting"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"VirtualPosting"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BalancedVirtualPosting"
'PrefixI 'False) U1))
A market price declaration made by the journal format's P directive. It declares two things: a historical exchange rate between two commodities, and an amount display style for the second commodity.
Constructors
Instances7Eq, Ord, Show, Generic, NFData, ToJSON, …
Eq PriceDirectiveDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd PriceDirectiveDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow PriceDirectiveDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric PriceDirectiveDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData PriceDirectiveDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON PriceDirectiveDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep PriceDirective = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"PriceDirective"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"PriceDirective"
'PrefixI 'True) ((S1 ('MetaSel ('Just"pdsourcepos"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 SourcePos) :*: S1 ('MetaSel ('Just"pddate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day)) :*: (S1 ('MetaSel ('Just"pdcommodity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CommoditySymbol) :*: S1 ('MetaSel ('Just"pdamount"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Amount))))
The basic numeric type used in amounts.
"Rounding strategy" - how to apply an AmountStyle's display precision to a posting amount (and its cost, if any). Mainly used to customise print's output, with --round=none|soft|hard|all.
Constructors
NoRoundingkeep display precisions unchanged in amt and cost
SoftRoundingdo soft rounding of amt and cost amounts (show more or fewer decimal zeros to approximate the target precision, but don't hide significant digits)
HardRoundingdo hard rounding of amt (use the exact target precision, possibly hiding significant digits), and soft rounding of cost
AllRoundingdo hard rounding of amt and cost
Instances9Eq, Ord, Read, Show, Generic, NFData, …
Eq RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesRead RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON RoundingDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep Rounding = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Rounding"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) ((C1 ('MetaCons"NoRounding"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SoftRounding"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"HardRounding"
'PrefixI 'False) U1 :+: C1 ('MetaCons"AllRounding"
'PrefixI 'False) U1))
Instances9Eq, Ord, Read, Show, Generic, NFData, …
Eq SideDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd SideDefined in hledger-lib-1.52.4 · Hledger.Data.TypesRead SideDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow SideDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric SideDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData SideDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON SideDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON SideDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep Side = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Side"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"L"
'PrefixI 'False) U1 :+: C1 ('MetaCons"R"
'PrefixI 'False) U1)
A possibly incomplete year-month-day date provided by the user, to be
interpreted as either a date or a date span depending on context. Missing
parts "on the left" will be filled from the provided reference date, e.g. if
the year and month are missing, the reference date's year and month are used.
Missing parts "on the right" are assumed, when interpreting as a date, to be
1, (e.g. if the year and month are present but the day is missing, it means
first day of that month); or when interpreting as a date span, to be a
wildcard (so it would mean all days of that month). See the smartdate
parser for more examples.
Or, one of the standard periods and a numeric offset relative to the reference date: (last|this|next) (day|week|month|quarter|year), where "this" means the period containing the reference date.
Or, (last|this|next) weekdayname, where "this" "next".
Or, (last|this|next) monthname, where "this" means the previous 1st if in that month, otherwise the start of the next occurrence of that month.
Constructors
Instances1Show
Show SmartIntervalDefined in hledger-lib-1.52.4 · Hledger.Data.Types
The status of a transaction or posting, recorded with a status mark (nothing, !, or *). What these mean is ultimately user defined.
Instances10Bounded, Enum, Eq, Ord, Show, Generic, …
Bounded StatusDefined in hledger-lib-1.52.4 · Hledger.Data.TypesEnum StatusDefined in hledger-lib-1.52.4 · Hledger.Data.TypesEq StatusDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd StatusDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow StatusDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric StatusDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData StatusDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON StatusDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON StatusDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep Status = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Status"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Unmarked"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Pending"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Cleared"
'PrefixI 'False) U1))
The id of a data format understood by hledger, eg journal or csv.
The --output-format option selects one of these for output.
Instances3Eq, Ord, Show
Eq StorageFormatDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd StorageFormatDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow StorageFormatDefined in hledger-lib-1.52.4 · Hledger.Data.Types
A transaction modifier transformation, which adds an extra posting to the matched posting's transaction. Can be like a regular posting, or can have the tmprIsMultiplier flag set, indicating that it's a multiplier for the matched posting's amount.
Constructors
Instances6Eq, Show, Generic, NFData, ToJSON, Rep
Eq TMPostingRuleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow TMPostingRuleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric TMPostingRuleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData TMPostingRuleDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON TMPostingRuleDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep TMPostingRule = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"TMPostingRule"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"TMPostingRule"
'PrefixI 'True) (S1 ('MetaSel ('Just"tmprPosting"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Posting) :*: S1 ('MetaSel ('Just"tmprIsMultiplier"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool)))
Extra information found in a tag directive.
Constructors
TagDeclarationInfotdicomment :: Textany comment lines following the tag directive. No tags allowed here.
Instances6Eq, Show, Generic, NFData, ToJSON, Rep
Eq TagDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow TagDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric TagDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData TagDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON TagDeclarationInfoDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep TagDeclarationInfo = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"TagDeclarationInfo"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'True) (C1 ('MetaCons"TagDeclarationInfo"
'PrefixI 'True) (S1 ('MetaSel ('Just"tdicomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))
Instances8Eq, Ord, Read, Show, Generic, NFData, …
Eq TimeclockCodeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd TimeclockCodeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesRead TimeclockCodeDefined in hledger-lib-1.52.4 · Hledger.Data.Timeclock · orphanShow TimeclockCodeDefined in hledger-lib-1.52.4 · Hledger.Data.Timeclock · orphanGeneric TimeclockCodeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData TimeclockCodeDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON TimeclockCodeDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep TimeclockCode = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"TimeclockCode"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) ((C1 ('MetaCons"SetBalance"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SetRequiredHours"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"In"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Out"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FinalOut"
'PrefixI 'False) U1)))
Constructors
Instances7Eq, Ord, Show, Generic, NFData, ToJSON, …
Eq TimeclockEntryDefined in hledger-lib-1.52.4 · Hledger.Data.TypesOrd TimeclockEntryDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow TimeclockEntryDefined in hledger-lib-1.52.4 · Hledger.Data.Timeclock · orphanGeneric TimeclockEntryDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData TimeclockEntryDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON TimeclockEntryDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep TimeclockEntry = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"TimeclockEntry"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"TimeclockEntry"
'PrefixI 'True) ((S1 ('MetaSel ('Just"tlsourcepos"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 SourcePos) :*: (S1 ('MetaSel ('Just"tlcode"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TimeclockCode) :*: S1 ('MetaSel ('Just"tldatetime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 LocalTime))) :*: ((S1 ('MetaSel ('Just"tlaccount"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 AccountName) :*: S1 ('MetaSel ('Just"tldescription"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just"tlcomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"tltags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Tag])))))
Constructors
Transactiontindex :: Integerthis transaction's 1-based position in the transaction stream, or 0 when not available
tprecedingcomment :: Textany comment lines immediately preceding this transaction
tsourcepos :: (SourcePos, SourcePos)the file position where the date starts, and where the last posting ends
tdate :: Daytdate2 :: Maybe Daytstatus :: Statustcode :: Texttdescription :: Texttcomment :: Textthis transaction's comment lines, as a single non-indented multi-line string
tpostings :: [Posting]this transaction's postings
Instances9Eq, Show, Generic, NFData, FromJSON, ToJSON, …
Eq TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.TypesFromJSON TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanToJSON TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphanHasAmounts TransactionDefined in hledger-lib-1.52.4 · Hledger.Data.Transaction · orphanHasAmounts AccountTransactionsReportItemDefined in hledger-lib-1.52.4 · Hledger.Reports.AccountTransactionsReport · orphantype Rep Transaction = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"Transaction"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"Transaction"
'PrefixI 'True) (((S1 ('MetaSel ('Just"tindex"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Integer) :*: S1 ('MetaSel ('Just"tprecedingcomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just"tsourcepos"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (SourcePos, SourcePos)) :*: (S1 ('MetaSel ('Just"tdate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Day) :*: S1 ('MetaSel ('Just"tdate2"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Day))))) :*: ((S1 ('MetaSel ('Just"tstatus"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Status) :*: (S1 ('MetaSel ('Just"tcode"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"tdescription"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text))) :*: (S1 ('MetaSel ('Just"tcomment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: (S1 ('MetaSel ('Just"ttags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Tag]) :*: S1 ('MetaSel ('Just"tpostings"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [Posting]))))))
A transaction modifier rule. This has a query which matches postings in the journal, and a list of transformations to apply to those postings or their transactions. Currently there is one kind of transformation: the TMPostingRule, which adds a posting ("auto posting") to the transaction, optionally setting its amount to the matched posting's amount multiplied by a constant.
Constructors
Instances6Eq, Show, Generic, NFData, ToJSON, Rep
Eq TransactionModifierDefined in hledger-lib-1.52.4 · Hledger.Data.TypesShow TransactionModifierDefined in hledger-lib-1.52.4 · Hledger.Data.TypesGeneric TransactionModifierDefined in hledger-lib-1.52.4 · Hledger.Data.TypesNFData TransactionModifierDefined in hledger-lib-1.52.4 · Hledger.Data.TypesToJSON TransactionModifierDefined in hledger-lib-1.52.4 · Hledger.Data.Json · orphantype Rep TransactionModifier = D1 ('MetaDataDefined in hledger-lib-1.52.4 · Hledger.Data.Types"TransactionModifier"
"Hledger.Data.Types"
"hledger-lib-1.52.4-9hXfdej3TnZFrbN8mI8ppA"
'False) (C1 ('MetaCons"TransactionModifier"
'PrefixI 'True) (S1 ('MetaSel ('Just"tmquerytxt"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just"tmpostingrules"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [TMPostingRule])))
Year of Common Era (when positive).
module Hledger.Data.Valuation