-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | The command-line interface for the hledger accounting system. Its
--   basic function is to read a plain text file describing financial
--   transactions and produce useful reports.
--   
--   hledger is a robust, cross-platform set of tools for tracking money,
--   time, or any other commodity, using double-entry accounting and a
--   simple, editable file format, with command-line, terminal and web
--   interfaces. It is a Haskell rewrite of Ledger, and one of the leading
--   implementations of Plain Text Accounting. Read more at:
--   <a>https://hledger.org</a>
@package hledger
@version 1.51.1

module Hledger.Cli.Anchor
setAccountAnchor :: Maybe Text -> [Text] -> Text -> Cell border text -> Cell border text
dateCell :: Lines border => Maybe Text -> [Text] -> Text -> Day -> Cell border Text
dateSpanCell :: Lines border => Maybe Text -> [Text] -> Text -> DateSpan -> Cell border Text
headerDateSpanCell :: Maybe Text -> [Text] -> DateSpan -> Cell () Text


-- | Instances for obfuscating sensitive data (mainly text, not numbers) in
--   various types.
--   
--   Currently this is deterministic and does not provide much privacy. It
--   has been moved to a hidden --obfuscate flag, with the old --anon flag
--   now raising an error. See
--   <a>https://github.com/simonmichael/hledger/issues/2133</a> .
module Hledger.Cli.Anon
class Anon a

-- | Consistent converter to structure with sensitive data anonymized
anon :: Anon a => a -> a

-- | Anonymize account name preserving hierarchy
anonAccount :: AccountName -> AccountName
instance Hledger.Cli.Anon.Anon Hledger.Data.Types.Journal
instance Hledger.Cli.Anon.Anon Hledger.Data.Types.Posting
instance Hledger.Cli.Anon.Anon Data.Text.Internal.Text
instance Hledger.Cli.Anon.Anon Hledger.Data.Types.Transaction


-- | Read extra CLI arguments from a hledger config file.
module Hledger.Cli.Conf

-- | A hledger config file.
data Conf

-- | The name of a config file section, with surrounding brackets and
--   whitespace removed.
type SectionName = String

-- | Try to read a hledger config from a config file specified by --conf,
--   or the first config file found in any of several default file paths.
--   If --no-conf was used, or if no file was specified or found, this
--   returns a null Conf. If a specified file, or the first file found, can
--   not be read or parsed, this returns an error message. Otherwise this
--   returns the parsed Conf, and the file path.
getConf :: RawOpts -> IO (Either String (Conf, Maybe FilePath))

-- | Like getConf but throws an error on failure.
getConf' :: RawOpts -> IO (Conf, Maybe FilePath)
nullconf :: Conf

-- | Fetch all the arguments/options defined in a section with this name,
--   if it exists. This should be "general" for the unnamed first section,
--   or a hledger command name.
confLookup :: SectionName -> Conf -> [Arg]

-- | Get the highest precedence config file, based on the current
--   directory.
activeConfFile :: IO (Maybe FilePath)

-- | Get the highest precedence local config file: a config file in the
--   current directory or above, that is not a user-wide config file.
activeLocalConfFile :: IO (Maybe FilePath)

-- | Get the highest precedence user-wide config file, based on the current
--   directory. (This may not be the active config file.)
activeUserConfFile :: IO (Maybe FilePath)

-- | Get the possibleConfFiles which exist, based on the current directory.
confFiles :: IO [FilePath]

-- | Get the possibleUserConfFiles which exist, based on the current
--   directory.
userConfFiles :: IO [FilePath]
parseConf :: FilePath -> Text -> Either (ParseErrorBundle Text HledgerParseErrorData) [ConfSection]
instance GHC.Classes.Eq Hledger.Cli.Conf.Conf
instance GHC.Classes.Eq Hledger.Cli.Conf.ConfFileSpec
instance GHC.Classes.Eq Hledger.Cli.Conf.ConfSection
instance GHC.Internal.Show.Show Hledger.Cli.Conf.Conf
instance GHC.Internal.Show.Show Hledger.Cli.Conf.ConfFileSpec
instance GHC.Internal.Show.Show Hledger.Cli.Conf.ConfSection


-- | Embedded documentation files in various formats, and helpers for
--   viewing them.
--   
--   |
module Hledger.Cli.DocFiles
type Topic = String

-- | Print plain text help for this tool. Takes an optional topic argument
--   for convenience but it is currently ignored.
printHelpForTopic :: Tool -> Maybe Topic -> IO ()

-- | Display a man page for this tool, scrolled to the given topic if
--   provided, using "man". When a topic is provided we force man to use
--   "less", ignoring $MANPAGER and $PAGER.
runManForTopic :: Tool -> Maybe Topic -> IO ()

-- | Display an info manual for this topic, opened at the given topic if
--   provided, using the "info" executable in $PATH. Topic can be an exact
--   heading or a heading prefix; info will favour an exact match.
runInfoForTopic :: Tool -> Maybe Topic -> IO ()

-- | Display plain text help for this tool, scrolled to the given topic if
--   any, using the users $PAGER or "less". When a topic is provided we
--   always use less, ignoring $PAGER.
--   
--   This is less robust than the newer Hledger.Utils.IO.runPager, but that
--   one doesn't yet support scrolling to a topic.
runPagerForTopic :: Tool -> Maybe Topic -> IO ()

-- | Display one of the hledger tldr pages, using "tldr".
runTldrForPage :: TldrPage -> IO ()

module Hledger.Cli.Version

-- | A Cabal/Hackage-compatible package version string: one or more
--   dot-separated integers.
type PackageVersionString = String

-- | The number parts parsed from a PackageVersionString.
type Version = NonEmpty Int
nullversion :: NonEmpty Int

-- | Parse a valid Cabal/Hackage-compatible package version.
toVersion :: PackageVersionString -> Maybe Version
showVersion :: Version -> String
isReleaseVersion :: Version -> Bool

-- | A hledger version string, as shown by hledger --version. This can
--   vary; some examples:
--   
--   <ul>
--   <li>dev builds: hledger 1.42.99-g2288f5193-20250422, mac-aarch64</li>
--   <li>release builds: hledger 1.42.1, mac-aarch64</li>
--   <li>older versions: hledger 1.21</li>
--   </ul>
type HledgerVersionString = String

-- | The name and package version of a hledger binary, and the build's git
--   hash, the release date, and the binary's intended operating machine
--   and machine architecture, if we can detect these. Also, a copy of the
--   --version output from which it was parsed.
data HledgerBinaryInfo
HledgerBinaryInfo :: String -> ProgramName -> Version -> String -> Maybe GitHash -> Maybe Day -> Maybe OsName -> Maybe ArchName -> HledgerBinaryInfo
[hbinVersionOutput] :: HledgerBinaryInfo -> String
[hbinProgramName] :: HledgerBinaryInfo -> ProgramName
[hbinPackageVersion] :: HledgerBinaryInfo -> Version
[hbinPackageVersionStr] :: HledgerBinaryInfo -> String
[hbinGitHash] :: HledgerBinaryInfo -> Maybe GitHash
[hbinReleaseDate] :: HledgerBinaryInfo -> Maybe Day
[hbinOs] :: HledgerBinaryInfo -> Maybe OsName
[hbinArch] :: HledgerBinaryInfo -> Maybe ArchName
nullbinaryinfo :: HledgerBinaryInfo

-- | The program name from a hledger version string: hledger, hledger-ui,
--   hledger-web..
type ProgramName = String

-- | The git hash from a hledger version string, excluding the g prefix.
type GitHash = String

-- | The machine architecture from a hledger version string. This is the
--   value of <tt>System.Info.arch</tt>, eg: aarch64, alpha, arm, hppa,
--   hppa1_1, i386, ia64, loongarch32, loongarch64, m68k, mips, mipseb,
--   mipsel, nios2, powerpc, powerpc64, powerpc64le, riscv32, riscv64,
--   rs6000, s390, s390x, sh4, sparc, sparc64, vax, x86_64..
type ArchName = String

-- | Parse hledger's --version output.
--   
--   <pre>
--   &gt;&gt;&gt; isRight $ parseHledgerVersion "hledger 1.21"
--   True
--   
--   &gt;&gt;&gt; isRight $ parseHledgerVersion "hledger 1.42.1, mac-aarch64"
--   True
--   
--   &gt;&gt;&gt; isRight $ parseHledgerVersion "hledger 1.42.99-g2288f5193-20250422, mac-aarch64"
--   True
--   </pre>
parseHledgerVersion :: HledgerVersionString -> Either String HledgerBinaryInfo

-- | The "1.51.1" string defined with -D in this package's
--   package.yaml/.cabal file (by Shake setversion), if any. Normally a
--   dotted number string with 1-3 components.
packageversion :: PackageVersionString

-- | Just the first 1-2 components of packageversion.
packagemajorversion :: PackageVersionString

-- | Given possible git state info from the build directory (or a git
--   error, which is ignored), and the debug build flag, executable name
--   and package version for the package being built, make the best version
--   string we can. Here is the logic:
--   
--   <ul>
--   <li>Program name, OS and architecture are always shown.</li>
--   <li>The package version is always shown.</li>
--   <li>If there is git info at build time, the latest commit hash and
--   commit date are shown, and (TODO, requires githash to use -uno for
--   giDirty): if the working copy has uncommitted changes a + sign is
--   appended.</li>
--   <li>(TODO, requires adding --match support to githash: If there are
--   tags matching THISPKG-[0-9]*, the latest one is used to calculate
--   patch level (number of commits since tag), and if non-zero, it and the
--   branch name are shown.)</li>
--   <li>If the debug build flag was enabled for the package being built,
--   and for hledger-lib (both are needed), "ghc-debug support" is
--   shown.</li>
--   </ul>
--   
--   Some example outputs:
--   
--   <ul>
--   <li>A homebrew binary, not built in git repo: hledger-ui 1.24,
--   mac-aarch64</li>
--   <li>A CI release build, built in git repo at release tag: hledger-ui
--   1.24.1-g455b35293-20211210, mac-x86_64</li>
--   <li>(TODO) A dev build, built in git repo: hledger-ui
--   1.24.1+1-g4abd8ef10-20211210 (1.24-branch), mac-x86_64</li>
--   </ul>
--   
--   This function requires git log to show the default (rfc2822-style)
--   date format, so that must not be overridden by a log.date git config
--   variable.
--   
--   The GitInfo if any, fetched by template haskell, is passed down from a
--   top-level module, reducing wasteful recompilation. The status of the
--   debug build flag is also passed down, since it is specific to each
--   hledger package.
--   
--   This is used indirectly by at least hledger, hledger-ui, and
--   hledger-web, so output should be suitable for all of those.
versionStringWith :: Either String GitInfo -> Bool -> ProgramName -> PackageVersionString -> HledgerVersionString
instance GHC.Classes.Eq Hledger.Cli.Version.HledgerBinaryInfo
instance GHC.Internal.Show.Show Hledger.Cli.Version.HledgerBinaryInfo


-- | Common cmdargs modes and flags, a command-line options type, and
--   related utilities used by hledger commands.
module Hledger.Cli.CliOptions

-- | The name of this program's executable.
progname :: ProgramName

-- | Generate the version string for this program. The template haskell
--   call is here rather than in Hledger.Cli.Version to avoid wasteful
--   recompilation.
prognameandversion :: String
binaryinfo :: HledgerBinaryInfo

-- | Common input-related flags: --file, --rules, --conf, --alias...
inputflags :: [Flag RawOpts]

-- | Common report-related flags: --period, --cost, etc.
reportflags :: [Flag RawOpts]
helpflags :: [Flag RawOpts]
terminalflags :: [Flag RawOpts]
helpflagstitle :: String

-- | Flags for selecting flat/tree mode, used for reports organised by
--   account. With a True argument, shows some extra help about
--   inclusive/exclusive amounts.
flattreeflags :: Bool -> [Flag RawOpts]

-- | hledger CLI's --conf/--no-conf flags.
confflags :: [Flag RawOpts]
hiddenflags :: [Flag RawOpts]

-- | Common legacy flags that are accepted but not shown in --help, when
--   running the main mode.
hiddenflagsformainmode :: [Flag RawOpts]

-- | Common output-related flags: --output-file, --output-format...
outputFormatFlag :: [String] -> Flag RawOpts
outputFileFlag :: Flag RawOpts
generalflagsgroup1 :: (String, [Flag RawOpts])
generalflagsgroup2 :: (String, [Flag RawOpts])
generalflagsgroup3 :: (String, [Flag RawOpts])
mkgeneralflagsgroups1 :: [Flag RawOpts] -> [(String, [Flag RawOpts])]
mkgeneralflagsgroups2 :: [Flag RawOpts] -> [(String, [Flag RawOpts])]
mkgeneralflagsgroups3 :: [Flag RawOpts] -> [(String, [Flag RawOpts])]
cligeneralflagsgroups1 :: [(String, [Flag RawOpts])]
cligeneralflagsgroups2 :: [(String, [Flag RawOpts])]
cligeneralflagsgroups3 :: [(String, [Flag RawOpts])]

-- | An empty cmdargs mode to use as a template. Modes describe the
--   top-level command, ie the program, or a subcommand, telling cmdargs
--   how to parse a command line and how to generate the command's usage
--   text.
defMode :: Mode RawOpts

-- | A cmdargs mode suitable for a hledger built-in command with the given
--   names (primary name + optional aliases). The usage message shows
--   [QUERY] as argument.
defCommandMode :: [Name] -> Mode RawOpts

-- | A cmdargs mode representing the hledger add-on command with the given
--   name, providing hledger's common input<i>reporting</i>help flags. Just
--   used when invoking addons.
addonCommandMode :: Name -> Mode RawOpts

-- | Build a cmdarg mode for a hledger command, from a help template and
--   flag/argument specifications. Reduces boilerplate a little, though the
--   complicated cmdargs flag and argument specs are still required.
hledgerCommandMode :: CommandHelpStr -> [Flag RawOpts] -> [(String, [Flag RawOpts])] -> [Flag RawOpts] -> ([Arg RawOpts], Maybe (Arg RawOpts)) -> Mode RawOpts
argsFlag :: FlagHelp -> Arg RawOpts

-- | Get a mode's usage message as a nicely wrapped string.
showModeUsage :: Mode a -> String

-- | Add command aliases to the command's help string.
withAliases :: String -> [String] -> String

-- | Get all sorted unique filenames in the current user's PATH. We do not
--   currently filter out non-file objects or files without execute
--   permission.
likelyExecutablesInPath :: IO [String]

-- | Command line options, used in the <tt>hledger</tt> package and above.
--   This is the "opts" used throughout hledger CLI code. representing the
--   options and arguments that were provided at startup on the
--   command-line.
data CliOpts
CliOpts :: RawOpts -> String -> [FilePath] -> InputOpts -> ReportSpec -> Maybe FilePath -> Maybe String -> Maybe Bool -> Maybe YNA -> Int -> Bool -> Maybe String -> Int -> POSIXTime -> CliOpts
[rawopts_] :: CliOpts -> RawOpts
[command_] :: CliOpts -> String
[file_] :: CliOpts -> [FilePath]
[inputopts_] :: CliOpts -> InputOpts
[reportspec_] :: CliOpts -> ReportSpec
[output_file_] :: CliOpts -> Maybe FilePath
[output_format_] :: CliOpts -> Maybe String

-- | <ul>
--   <li>-pager</li>
--   </ul>
[pageropt_] :: CliOpts -> Maybe Bool

-- | <ul>
--   <li>-color. Controls use of ANSI color and ANSI styles.</li>
--   </ul>
[coloropt_] :: CliOpts -> Maybe YNA

-- | debug level, set by <tt>--debug[=N]</tt>. See also <a>debugLevel</a>.
[debug_] :: CliOpts -> Int
[no_new_accounts_] :: CliOpts -> Bool

-- | the --width value provided, if any
[width_] :: CliOpts -> Maybe String

-- | estimated usable screen width, based on 1. the width reported by the
--   terminal, if supported 2. the default (80)
[available_width_] :: CliOpts -> Int
[progstarttime_] :: CliOpts -> POSIXTime
class HasCliOpts c
cliOpts :: HasCliOpts c => Lens' c CliOpts
available_width :: HasCliOpts c => Lens' c Int
coloropt :: HasCliOpts c => Lens' c (Maybe YNA)
command :: HasCliOpts c => Lens' c String
debug__ :: HasCliOpts c => Lens' c Int
file__ :: HasCliOpts c => Lens' c [FilePath]
inputopts :: HasCliOpts c => Lens' c InputOpts
no_new_accounts :: HasCliOpts c => Lens' c Bool
output_file :: HasCliOpts c => Lens' c (Maybe FilePath)
output_format :: HasCliOpts c => Lens' c (Maybe String)
pageropt :: HasCliOpts c => Lens' c (Maybe Bool)
progstarttime :: HasCliOpts c => Lens' c POSIXTime
rawopts__ :: HasCliOpts c => Lens' c RawOpts
reportspec :: HasCliOpts c => Lens' c ReportSpec
width__ :: HasCliOpts c => Lens' c (Maybe String)
defcliopts :: CliOpts
getHledgerCliOpts :: Mode RawOpts -> IO CliOpts

-- | A helper for addon commands: this parses options and arguments from
--   the current command line using the given hledger-style cmdargs mode,
--   and returns a CliOpts. Or, with --help or -h present, it prints long
--   or short help, and exits the program. When --debug is present, also
--   prints some debug output. Note this is not used by the main hledger
--   executable.
--   
--   The help texts are generated from the mode. Long help includes the
--   full usage description generated by cmdargs (including all supported
--   options), framed by whatever pre- and postamble text the mode
--   specifies. It's intended that this forms a complete help document or
--   manual.
--   
--   Short help is a truncated version of the above: the preamble and the
--   first part of the usage, up to the first line containing "flags:"
--   (normally this marks the start of the common hledger flags); plus a
--   mention of --help and the (presumed supported) common hledger options
--   not displayed.
--   
--   Tips: Empty lines in the pre/postamble are removed by cmdargs; add a
--   space character to preserve them.
getHledgerCliOpts' :: Mode RawOpts -> [String] -> IO CliOpts

-- | Parse raw option string values to the desired final data types. Any
--   relative smart dates will be converted to fixed dates based on today's
--   date. Parsing failures will raise an error. Also records the terminal
--   width, if supported.
rawOptsToCliOpts :: RawOpts -> IO CliOpts

-- | Drop the arguments ("args") from this CliOpts' rawopts field.
cliOptsDropArgs :: CliOpts -> CliOpts

-- | cmdargs eats the first double-dash (--) argument when parsing a
--   command line, which causes problems for the run and repl commands.
--   Sometimes we work around this by duplicating that first -- argument.
--   This doesn't break anything that we know of yet.
argsAddDoubleDash :: (Eq a, IsString a) => [a] -> [a]

-- | All the output formats known by any command, for outputFormatFromOpts.
--   To automatically infer it from -o/--output-file, it needs to be listed
--   here.
outputFormats :: [String]
defaultOutputFormat :: String

-- | A command's name, optional official abbreviation, and help preamble
--   &amp; postamble, as a specially formatted single string. Used to
--   generate the CLI help, and also the command's doc in the hledger
--   manual. See parseCommandHelp for the format.
type CommandHelpStr = String

-- | Parse a command's embedded help text (<tt>Somecommand.txt</tt>). That
--   text is generated by <tt>Shake cmdhelp</tt> from the command's doc
--   source (<tt>Somecommand.md</tt>). <tt>Somecommand.md</tt> should be
--   formatted as follows:
--   
--   <ul>
--   <li>First line: the command name, as a markdown heading.</li>
--   <li>Optional third line: the command's official abbreviated name,
--   parenthesised.</li>
--   <li>From third or fifth line to a <tt>```flags</tt> line: the command
--   help preamble. Usually one sentence or paragraph; any blank lines will
--   not be rendered.</li>
--   <li>A fenced code block beginning with <tt>```flags</tt>, containing a
--   <tt>Flags:</tt> line, followed by a snapshot of the command-specific
--   flags help as generated by cmdargs or "none" if there are no
--   command-specific flags. This should contain no blank lines (no extra
--   newlines in the cmdargs command mode help strings). This is shown
--   as-is in manuals, and regenerated at runtime for --help output.</li>
--   <li>Any remaining lines: the command help postamble.</li>
--   </ul>
--   
--   (Note the difference between <tt>Somecommand.md</tt>, which is the
--   markdown source file, and <tt>Somecommand.txt</tt>, which is the plain
--   text file generated by <tt>Shake cmdhelp</tt>, which this function
--   parses.)
parseCommandHelp :: CommandHelpStr -> Maybe CommandHelp

-- | Get the (tilde-expanded, absolute) journal file path from 1. options,
--   2. an environment variable, or 3. the default. Actually, returns one
--   or more file paths. There will be more than one if multiple -f options
--   were provided. File paths can have a READER: prefix naming a
--   reader/data format.
journalFilePathFromOpts :: CliOpts -> IO (NonEmpty String)

-- | Like journalFilePathFromOpts, but does not use defaultJournalPath
journalFilePathFromOptsNoDefault :: CliOpts -> IO (Maybe (NonEmpty String))

-- | Get the (tilde-expanded) rules file path from options, if any.
rulesFilePathFromOpts :: CliOpts -> IO (Maybe FilePath)

-- | Get the expanded, absolute output file path specified by an
--   -o/--output-file options, or nothing, meaning stdout.
outputFileFromOpts :: CliOpts -> IO (Maybe FilePath)

-- | Get the output format from the --output-format option, otherwise from
--   a recognised file extension in the --output-file option, otherwise the
--   default (txt).
outputFormatFromOpts :: CliOpts -> String

-- | Default width for hledger console output, when not otherwise
--   specified.
defaultWidth :: Int

-- | Replace any numeric flags (eg -2) with their long form (--depth 2), as
--   I'm guessing cmdargs doesn't support this directly.
replaceNumericFlags :: [String] -> [String]
ensureDebugFlagHasVal :: [String] -> [String]

-- | Get the width in characters to use for the register command's console
--   output, and also the description column width if specified (following
--   the main width, comma-separated). The widths will be as follows: <tt>
--   no --width flag - overall width is the available width (or terminal
--   width, or 80); description width is unspecified (auto) --width W -
--   overall width is W, description width is auto --width W,D - overall
--   width is W, description width is D </tt> Will raise a parse error for
--   a malformed --width argument.
registerWidthsFromOpts :: CliOpts -> (Int, Maybe Int)

-- | Get the most appropriate documentation topic for a mode. Currently,
--   that is either the hledger, hledger-ui or hledger-web manual.
topicForMode :: Mode a -> Topic
data DeclarablesSelector
Used :: DeclarablesSelector
Declared :: DeclarablesSelector
Undeclared :: DeclarablesSelector
Unused :: DeclarablesSelector
Find :: DeclarablesSelector
declarablesSelectorFromOpts :: CliOpts -> Maybe DeclarablesSelector

-- | A helper for the --find mode offered by commands like accounts,
--   commodities, payees, tags (see also <a>DeclarablesSelector</a>).
--   Interpret the first command argument found in rawopts as a case
--   insensitive regular expression, then return the first of the provided
--   items that it matches; or raise an error if there's no valid argument
--   or no matched item. This function's second argument describes the
--   items' type, for the error message.
findMatchedByArgument :: RawOpts -> String -> [Text] -> Text
instance Data.Default.Internal.Default Hledger.Cli.CliOptions.CliOpts
instance GHC.Classes.Eq Hledger.Cli.CliOptions.DeclarablesSelector
instance Hledger.Data.Balancing.HasBalancingOpts Hledger.Cli.CliOptions.CliOpts
instance Hledger.Cli.CliOptions.HasCliOpts Hledger.Cli.CliOptions.CliOpts
instance Hledger.Read.InputOptions.HasInputOpts Hledger.Cli.CliOptions.CliOpts
instance Hledger.Reports.ReportOptions.HasReportOpts Hledger.Cli.CliOptions.CliOpts
instance Hledger.Reports.ReportOptions.HasReportOptsNoUpdate Hledger.Cli.CliOptions.CliOpts
instance Hledger.Reports.ReportOptions.HasReportSpec Hledger.Cli.CliOptions.CliOpts
instance GHC.Internal.Show.Show Hledger.Cli.CliOptions.CliOpts
instance GHC.Internal.Show.Show Hledger.Cli.CliOptions.CommandHelp
instance GHC.Internal.Show.Show Hledger.Cli.CliOptions.DeclarablesSelector


-- | Utilities for top-level modules and ghci. See also Hledger.Read and
--   Hledger.Utils.
module Hledger.Cli.Utils

-- | Standard error message for a bad output format specified with -O/-o.
unsupportedOutputFormatError :: String -> String

-- | Parse the user's specified journal file(s) as a Journal, maybe apply
--   some transformations according to options, and run a hledger command
--   with it. Or, throw an error.
withJournal :: CliOpts -> (Journal -> IO a) -> IO a

-- | <i>Deprecated: renamed, please use withJournal instead</i>
withJournalDo :: CliOpts -> (Journal -> IO a) -> IO a

-- | Write some output to stdout or to a file selected by --output-file. If
--   the file exists it will be overwritten.
writeOutput :: CliOpts -> String -> IO ()

-- | Write some output, to a file specified by --output-file if any,
--   otherwise to stdout. If writing to a file and the file exists, it will
--   be overwritten. If writing to stdout, a pager is used when appropriate
--   and possible.
writeOutputLazyText :: CliOpts -> Text -> IO ()

-- | Apply some journal transformations, if enabled by options, that should
--   happen late. These happen after parsing, finalising the journal,
--   strict checks, and .latest filtering/updating, but before report
--   calculation. They are, in processing order: --pivot, --anonymise error
--   message, --obfuscate.
--   
--   Why not do these in journalFinalise ? That step is supposed to check
--   the data's intrinsic correctness, regardless of view options; whereas
--   here we assume correctness and are just transforming the view (based
--   only on InputOpts). XXX But it's easy to forget to call this. Current
--   callers include withJournal, journalReload, uiReload,
--   withJournalCached.
journalTransform :: CliOpts -> Journal -> Journal

-- | Re-read the journal file(s) specified by options, applying any
--   transformations specified by options. Or return an error string. Reads
--   the full journal, without filtering.
journalReload :: CliOpts -> ExceptT String IO Journal

-- | Re-read the option-specified journal file(s), but only if any of them
--   has changed since last read. (If the file is standard input, this will
--   either do nothing or give an error, not tested yet). Returns a journal
--   or error message, and a flag indicating whether it was re-read or not.
--   Like withJournal and journalReload, reads the full journal, without
--   filtering.
journalReloadIfChanged :: CliOpts -> Day -> Journal -> ExceptT String IO (Journal, Bool)

-- | Has the specified file changed since the journal was last read ?
--   Typically this is one of the journal's journalFilePaths. These are not
--   always real files, so the file's existence is tested first; for
--   non-files the answer is always no.
journalFileIsNewer :: Journal -> FilePath -> IO Bool

-- | Attempt to open a web browser on the given url, all platforms.
openBrowserOn :: String -> IO ExitCode

-- | Back up this file with a (incrementing) numbered suffix, then
--   overwrite it with this new text, or give an error.
writeFileWithBackup :: FilePath -> String -> IO ()

-- | Back up this file with a (incrementing) numbered suffix then overwrite
--   it with this new text, or give an error, but only if the text is
--   different from the current file contents, and return a flag indicating
--   whether we did anything.
--   
--   The given text should have unix line endings (n); the existing file
--   content will be normalised to unix line endings before comparing the
--   two. If the file is overwritten, the new file will have the current
--   system's native line endings (n on unix, rn on windows). This could be
--   different from the file's previous line endings, if working with a DOS
--   file on unix or vice-versa.
writeFileWithBackupIfChanged :: FilePath -> Text -> IO Bool
journalSimilarTransaction :: CliOpts -> Journal -> Text -> Maybe Transaction

-- | Render a <a>PostingsReport</a> or <a>AccountTransactionsReport</a> as
--   Text, determining the appropriate starting widths and increasing as
--   necessary.
postingsOrTransactionsReportAsText :: Bool -> CliOpts -> (Int -> Int -> (a, [WideBuilder], [WideBuilder]) -> Builder) -> (a -> MixedAmount) -> (a -> MixedAmount) -> [a] -> Builder
tests_Cli_Utils :: TestTree

module Hledger.Cli.Commands.Tags
tagsmode :: Mode RawOpts
tags :: CliOpts -> Journal -> IO ()


-- | Print some statistics for the journal.
module Hledger.Cli.Commands.Stats
statsmode :: Mode RawOpts

-- | Print various statistics for the journal.
stats :: CliOpts -> Journal -> IO ()


-- | Check and show the status of the hledger installation.
module Hledger.Cli.Commands.Setup
setupmode :: Mode RawOpts

-- | Test and print the status of various aspects of the hledger
--   installation. May also show extra info and hints on how to fix
--   problems. The goal is to detect and show as much useful information as
--   possible, and to complete this task reliably regardless of what we
--   find, without premature termination or misformatting.
--   
--   The tests are grouped into setup* routines, so named because they
--   might do more than just test in future.
--   
--   This is the second version of setup. If it finds that the currently
--   running hledger is not the one installed in PATH (by comparing
--   --version output), it refuses to proceed further until that has been
--   done. This means it can rely on all the latest features and use the
--   hledger API within this process, simplifying things greatly.
setup :: CliOpts -> Journal -> IO ()
instance GHC.Classes.Eq Hledger.Cli.Commands.Setup.YNU
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Setup.YNU


-- | The <tt>run</tt> command allows you to run multiple commands via REPL
--   or from the supplied file(s).
module Hledger.Cli.Commands.Run

-- | Command line options for this command.
runmode :: Mode RawOpts

-- | The actual run command.
run :: Maybe DefaultRunJournal -> (String -> Maybe (Mode RawOpts, CliOpts -> Journal -> IO ())) -> [String] -> CliOpts -> IO ()
replmode :: Mode RawOpts

-- | The actual repl command.
repl :: (String -> Maybe (Mode RawOpts, CliOpts -> Journal -> IO ())) -> [String] -> CliOpts -> IO ()

-- | The fake run/repl command introduced to break circular dependency.
--   This module needs access to <tt>findBuiltinCommand</tt>, which is
--   defined in Hledger.Cli.Commands However, Hledger.Cli.Commands imports
--   this module, which creates circular dependency. We expose this
--   do-nothing function so that it could be included in the list of all
--   commands inside Hledger.Cli.Commands and ensure that "run" is
--   recognized as a valid command by the Hledger.Cli top-level command
--   line parser. That parser, however, would not call run'. It has a
--   special case for "run", and will call "run" (see below), passing it
--   <tt>findBuiltinCommand</tt>, thus breaking circular dependency.
runOrReplStub :: CliOpts -> Journal -> IO ()
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Run.DefaultRunJournal


-- | The <tt>roi</tt> command prints internal rate of return and
--   time-weighted rate of return for and investment.
module Hledger.Cli.Commands.Roi
roimode :: Mode RawOpts
roi :: CliOpts -> Journal -> IO ()
instance GHC.Classes.Eq Hledger.Cli.Commands.Roi.TwrPeriod
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Roi.OneSpan
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Roi.TwrPeriod


-- | A ledger-compatible <tt>register</tt> command.
module Hledger.Cli.Commands.Register
registermode :: Mode RawOpts

-- | Print a (posting) register report.
register :: CliOpts -> Journal -> IO ()

-- | Render a register report as plain text suitable for console output.
postingsReportAsText :: CliOpts -> PostingsReport -> Text

-- | Render one register report line item as plain text. Layout is like so:
--   <tt> <a>width (specified, terminal width, or 80)
--   --------------------</a> date (10) description account amount (12)
--   balance (12) DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa
--   AAAAAAAAAAAA AAAAAAAAAAAA </tt> If description's width is specified,
--   account will use the remaining space. Otherwise, description and
--   account divide up the space equally.
--   
--   With a report interval, the layout is like so: <tt> <a>width
--   (specified, terminal width, or 80) --------------------</a> date (21)
--   account amount (12) balance (12) DDDDDDDDDDDDDDDDDDDDD
--   aaaaaaaaaaaaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA </tt>
--   
--   date and description are shown for the first posting of a transaction
--   only.
--   
--   Returns a string which can be multi-line, eg if the running balance
--   has multiple commodities. Does not yet support formatting control like
--   balance reports.
--   
--   Also returns the natural width (without padding) of the amount and
--   balance fields.
postingsReportItemAsText :: CliOpts -> Int -> Int -> (PostingsReportItem, [WideBuilder], [WideBuilder]) -> Builder
tests_Register :: TestTree


-- | A ledger-compatible <tt>print</tt> command.
module Hledger.Cli.Commands.Print
printmode :: Mode RawOpts

-- | Print journal transactions in standard format.
print' :: CliOpts -> Journal -> IO ()
roundFlag :: Flag RawOpts

-- | Get the --round option's value, if any. Can fail with a parse error.
roundFromRawOpts :: RawOpts -> Maybe Rounding

-- | Set these amount styles' rounding strategy when they are being applied
--   to amounts, according to the value of the --round option, if any.
amountStylesSetRoundingFromRawOpts :: RawOpts -> Map CommoditySymbol AmountStyle -> Map CommoditySymbol AmountStyle

-- | Replace this transaction's postings with the original postings if any,
--   but keep the current possibly rewritten account names, and the
--   inferred values of any auto postings. This is mainly for showing
--   transactions with the amounts in their original journal format.
transactionWithMostlyOriginalPostings :: Transaction -> Transaction

module Hledger.Cli.Commands.Rewrite
rewritemode :: Mode RawOpts
rewrite :: CliOpts -> Journal -> IO ()
instance GHC.Internal.Data.Foldable.Foldable Hledger.Cli.Commands.Rewrite.DiffLine
instance GHC.Internal.Base.Functor Hledger.Cli.Commands.Rewrite.DiffLine
instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Hledger.Cli.Commands.Rewrite.DiffLine a)
instance GHC.Internal.Data.Traversable.Traversable Hledger.Cli.Commands.Rewrite.DiffLine

module Hledger.Cli.Commands.Prices
pricesmode :: Mode RawOpts
prices :: CliOpts -> Journal -> IO ()
instance Hledger.Data.Types.HasAmounts Hledger.Data.Types.PriceDirective


-- | The <tt>payees</tt> command lists all unique payees (description part
--   before a |) seen in transactions, sorted alphabetically.
module Hledger.Cli.Commands.Payees

-- | Command line options for this command.
payeesmode :: Mode RawOpts

-- | The payees command.
payees :: CliOpts -> Journal -> IO ()


-- | The <tt>notes</tt> command lists all unique notes (description part
--   after a |) seen in transactions, sorted alphabetically.
module Hledger.Cli.Commands.Notes

-- | Command line options for this command.
notesmode :: Mode RawOpts

-- | The notes command.
notes :: CliOpts -> Journal -> IO ()


-- | The help command.
--   
--   |
module Hledger.Cli.Commands.Help
helpmode :: Mode RawOpts

-- | Display the hledger manual in various formats. You can select a docs
--   viewer with one of the `--info`, `--man`, `--pager` flags. Otherwise
--   it will use the first available of: info, man, $PAGER, less, stdout
--   (and always stdout if output is non-interactive).
help' :: CliOpts -> Journal -> IO ()


-- | The <tt>files</tt> command lists included files.
module Hledger.Cli.Commands.Files

-- | Command line options for this command.
filesmode :: Mode RawOpts

-- | The files command.
files :: CliOpts -> Journal -> IO ()


-- | The <tt>diff</tt> command compares two diff.
module Hledger.Cli.Commands.Diff

-- | Command line options for this command.
diffmode :: Mode RawOpts

-- | The diff command.
diff :: CliOpts -> Journal -> IO ()
instance GHC.Classes.Eq Hledger.Cli.Commands.Diff.PostingWithPath
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Diff.PostingWithPath


-- | The <tt>descriptions</tt> command lists all unique descriptions seen
--   in transactions, sorted alphabetically.
module Hledger.Cli.Commands.Descriptions

-- | Command line options for this command.
descriptionsmode :: Mode RawOpts

-- | The descriptions command.
descriptions :: CliOpts -> Journal -> IO ()


-- | The <tt>demo</tt> command lists and plays small hledger demos in the
--   terminal, using asciinema.
module Hledger.Cli.Commands.Demo

-- | Command line options for this command.
demomode :: Mode RawOpts

-- | The demo command.
demo :: CliOpts -> Journal -> IO ()


-- | The <tt>commodities</tt> command lists commodity/currency symbols.
module Hledger.Cli.Commands.Commodities

-- | Command line options for this command.
commoditiesmode :: Mode RawOpts
commodities :: CliOpts -> Journal -> IO ()


-- | The <tt>codes</tt> command lists the codes seen in transactions, in
--   the order parsed.
module Hledger.Cli.Commands.Codes

-- | Command line options for this command.
codesmode :: Mode RawOpts

-- | The codes command.
codes :: CliOpts -> Journal -> IO ()

module Hledger.Cli.Commands.Close
closemode :: Mode RawOpts
close :: CliOpts -> Journal -> IO ()
instance GHC.Classes.Eq Hledger.Cli.Commands.Close.CloseMode
instance GHC.Internal.Read.Read Hledger.Cli.Commands.Close.CloseMode
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Close.CloseMode

module Hledger.Cli.Commands.Check
checkmode :: Mode RawOpts
check :: CliOpts -> Journal -> IO ()
instance GHC.Internal.Enum.Bounded Hledger.Cli.Commands.Check.Check
instance GHC.Internal.Enum.Enum Hledger.Cli.Commands.Check.Check
instance GHC.Classes.Eq Hledger.Cli.Commands.Check.Check
instance GHC.Classes.Ord Hledger.Cli.Commands.Check.Check
instance GHC.Internal.Read.Read Hledger.Cli.Commands.Check.Check
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Check.Check


-- | A ledger-compatible <tt>balance</tt> command, with additional support
--   for multi-column reports.
--   
--   Here is a description/specification for the balance command. See also
--   <a>Hledger.Reports</a> -&gt; "Balance reports".
--   
--   <i>Basic balance report</i>
--   
--   With no report interval (<tt>--monthly</tt> etc.), hledger's balance
--   command emulates ledger's, showing accounts indented according to
--   hierarchy, along with their total amount posted (including
--   subaccounts).
--   
--   Here's an example. With <tt>examples/sample.journal</tt>, which
--   defines the following account tree:
--   
--   <pre>
--   assets
--     bank
--       checking
--       saving
--     cash
--   expenses
--     food
--     supplies
--   income
--     gifts
--     salary
--   liabilities
--     debts
--   </pre>
--   
--   the basic <tt>balance</tt> command gives this output:
--   
--   <pre>
--    $ hledger -f sample.journal balance
--                    $-1  assets
--                     $1    bank:saving
--                    $-2    cash
--                     $2  expenses
--                     $1    food
--                     $1    supplies
--                    $-2  income
--                    $-1    gifts
--                    $-1    salary
--                     $1  liabilities:debts
--   --------------------
--                      0
--   </pre>
--   
--   Subaccounts are displayed indented below their parent. Only the
--   account leaf name (the final part) is shown. (With <tt>--flat</tt>,
--   account names are shown in full and unindented.)
--   
--   Each account's "balance" is the sum of postings in that account and
--   any subaccounts during the report period. When the report period
--   includes all transactions, this is equivalent to the account's current
--   balance.
--   
--   The overall total of the highest-level displayed accounts is shown
--   below the line. (The <tt>--no-total/-N</tt> flag prevents this.)
--   
--   <i>Eliding and omitting</i>
--   
--   Accounts which have a zero balance, and no non-zero subaccount
--   balances, are normally omitted from the report. (The
--   <tt>--empty/-E</tt> flag forces such accounts to be displayed.) Eg,
--   above <tt>checking</tt> is omitted because it has a zero balance and
--   no subaccounts.
--   
--   Accounts which have a single subaccount also being displayed, with the
--   same balance, are normally elided into the subaccount's line. (The
--   <tt>--no-elide</tt> flag prevents this.) Eg, above <tt>bank</tt> is
--   elided to <tt>bank:saving</tt> because it has only a single displayed
--   subaccount (<tt>saving</tt>) and their balance is the same ($1).
--   Similarly, <tt>liabilities</tt> is elided to
--   <tt>liabilities:debts</tt>.
--   
--   <i>Date limiting</i>
--   
--   The default report period is that of the whole journal, including all
--   known transactions. The <tt>--begin/-b</tt>, <tt>--end/-e</tt>,
--   <tt>--period/-p</tt> options or <tt>date:</tt>/<tt>date2:</tt>
--   patterns can be used to report only on transactions before and/or
--   after specified dates.
--   
--   <i>Depth limiting</i>
--   
--   The <tt>--depth</tt> option can be used to limit the depth of the
--   balance report. Eg, to see just the top level accounts (still
--   including their subaccount balances):
--   
--   <pre>
--   $ hledger -f sample.journal balance --depth 1
--                    $-1  assets
--                     $2  expenses
--                    $-2  income
--                     $1  liabilities
--   --------------------
--                      0
--   </pre>
--   
--   <i>Account limiting</i>
--   
--   With one or more account pattern arguments, the report is restricted
--   to accounts whose name matches one of the patterns, plus their parents
--   and subaccounts. Eg, adding the pattern <tt>o</tt> to the first
--   example gives:
--   
--   <pre>
--    $ hledger -f sample.journal balance o
--                     $1  expenses:food
--                    $-2  income
--                    $-1    gifts
--                    $-1    salary
--   --------------------
--                    $-1
--   </pre>
--   
--   <ul>
--   <li>The <tt>o</tt> pattern matched <tt>food</tt> and <tt>income</tt>,
--   so they are shown.</li>
--   <li><tt>food</tt>'s parent (<tt>expenses</tt>) is shown even though
--   the pattern didn't match it, to clarify the hierarchy. The usual
--   eliding rules cause it to be elided here.</li>
--   <li><tt>income</tt>'s subaccounts are also shown.</li>
--   </ul>
--   
--   <i>Multi-column balance report</i>
--   
--   hledger's balance command will show multiple columns when a reporting
--   interval is specified (eg with <tt>--monthly</tt>), one column for
--   each sub-period.
--   
--   There are three accumulation strategies for multi-column balance
--   report, indicated by the heading:
--   
--   <ul>
--   <li>A "period balance" (or "flow") report (with <tt>--change</tt>, the
--   default) shows the change of account balance in each period, which is
--   equivalent to the sum of postings in each period. Here, checking's
--   balance increased by 10 in Feb:</li>
--   </ul>
--   
--   <pre>
--   Change of balance (flow):
--   
--                    Jan   Feb   Mar
--   assets:checking   20    10    -5
--   </pre>
--   
--   <ul>
--   <li>A "cumulative balance" report (with <tt>--cumulative</tt>) shows
--   the accumulated ending balance across periods, starting from zero at
--   the report's start date. Here, 30 is the sum of checking postings
--   during Jan and Feb:</li>
--   </ul>
--   
--   <pre>
--   Ending balance (cumulative):
--   
--                    Jan   Feb   Mar
--   assets:checking   20    30    25
--   </pre>
--   
--   <ul>
--   <li>A "historical balance" report (with <tt>--historical/-H</tt>) also
--   shows ending balances, but it includes the starting balance from any
--   postings before the report start date. Here, 130 is the balance from
--   all checking postings at the end of Feb, including pre-Jan postings
--   which created a starting balance of 100:</li>
--   </ul>
--   
--   <pre>
--   Ending balance (historical):
--   
--                    Jan   Feb   Mar
--   assets:checking  120   130   125
--   </pre>
--   
--   <i>Eliding and omitting, 2</i>
--   
--   Here's a (imperfect?) specification for the eliding/omitting
--   behaviour:
--   
--   <ul>
--   <li>Each account is normally displayed on its own line.</li>
--   <li>An account less deep than the report's max depth, with just one
--   interesting subaccount, and the same balance as the subaccount, is
--   non-interesting, and prefixed to the subaccount's line, unless
--   <tt>--no-elide</tt> is in effect.</li>
--   <li>An account with a zero inclusive balance and less than two
--   interesting subaccounts is not displayed at all, unless
--   <tt>--empty</tt> is in effect.</li>
--   <li>Multi-column balance reports show full account names with no
--   eliding (like <tt>--flat</tt>). Accounts (and periods) are omitted as
--   described below.</li>
--   </ul>
--   
--   <i>Which accounts to show in balance reports</i>
--   
--   By default:
--   
--   <ul>
--   <li>single-column: accounts with non-zero balance in report period.
--   (With <tt>--flat</tt>: accounts with non-zero balance and
--   postings.)</li>
--   <li>change: accounts with postings and non-zero period balance in any
--   period</li>
--   <li>cumulative: accounts with non-zero cumulative balance in any
--   period</li>
--   <li>historical: accounts with non-zero historical balance in any
--   period</li>
--   </ul>
--   
--   With <tt>-E/--empty</tt>:
--   
--   <ul>
--   <li>single-column: accounts with postings in report period</li>
--   <li>change: accounts with postings in report period</li>
--   <li>cumulative: accounts with postings in report period</li>
--   <li>historical: accounts with non-zero starting balance + accounts
--   with postings in report period</li>
--   </ul>
--   
--   <i>Which periods (columns) to show in balance reports</i>
--   
--   An empty period/column is one where no report account has any
--   postings. A zero period/column is one where no report account has a
--   non-zero period balance.
--   
--   Currently,
--   
--   by default:
--   
--   <ul>
--   <li>single-column: N/A</li>
--   <li>change: all periods within the overall report period, except for
--   leading and trailing empty periods</li>
--   <li>cumulative: all periods within the overall report period, except
--   for leading and trailing empty periods</li>
--   <li>historical: all periods within the overall report period, except
--   for leading and trailing empty periods</li>
--   </ul>
--   
--   With <tt>-E/--empty</tt>:
--   
--   <ul>
--   <li>single-column: N/A</li>
--   <li>change: all periods within the overall report period</li>
--   <li>cumulative: all periods within the overall report period</li>
--   <li>historical: all periods within the overall report period</li>
--   </ul>
--   
--   <i>What to show in empty cells</i>
--   
--   An empty periodic balance report cell is one which has no
--   corresponding postings. An empty cumulative/historical balance report
--   cell is one which has no corresponding or prior postings, ie the
--   account doesn't exist yet. Currently, empty cells show 0.
module Hledger.Cli.Commands.Balance

-- | Command line options for this command.
balancemode :: Mode RawOpts

-- | The balance command, prints a balance report.
balance :: CliOpts -> Journal -> IO ()

-- | Render a single-column balance report as plain text.
balanceReportAsText :: ReportOpts -> BalanceReport -> Builder

-- | Render a single-column balance report as CSV.
balanceReportAsCsv :: ReportOpts -> BalanceReport -> CSV

-- | Render a single-column balance report as FODS.
balanceReportAsSpreadsheet :: ReportOpts -> BalanceReport -> [[Cell NumLines Text]]

-- | Render one balance report line item as plain text suitable for console
--   output (or whatever string format is specified). Note, prices will not
--   be rendered, and differently-priced quantities of the same commodity
--   will appear merged. The output will be one or more lines depending on
--   the format and number of commodities.
balanceReportItemAsText :: ReportOpts -> BalanceReportItem -> (Builder, [Int])

-- | Render a budget report as plain text suitable for console output.
budgetReportAsText :: ReportOpts -> BudgetReport -> Text

-- | Render a budget report as CSV. Like multiBalanceReportAsCsv, but
--   includes alternating actual and budget amount columns.
budgetReportAsCsv :: ReportOpts -> BudgetReport -> [[Text]]
budgetReportAsSpreadsheet :: ReportOpts -> BudgetReport -> [[Cell NumLines Text]]
multiBalanceRowAsCellBuilders :: AmountFormat -> ReportOpts -> [DateSpan] -> RowClass -> (DateSpan -> Cell NumLines Text) -> PeriodicReportRow a MixedAmount -> [[Cell NumLines WideBuilder]]
multiBalanceRowAsCsvText :: ReportOpts -> [DateSpan] -> PeriodicReportRow a MixedAmount -> [[Text]]
multiBalanceRowAsText :: ReportOpts -> PeriodicReportRow a MixedAmount -> [[WideBuilder]]

-- | Render a multi-column balance report as plain text suitable for
--   console output.
multiBalanceReportAsText :: ReportOpts -> MultiBalanceReport -> Text

-- | Render a multi-column balance report as CSV. The CSV will always
--   include the initial headings row, and will include the final totals
--   row unless --no-total is set.
multiBalanceReportAsCsv :: ReportOpts -> MultiBalanceReport -> CSV

-- | Render a multi-column balance report as HTML.
multiBalanceReportAsHtml :: ReportOpts -> MultiBalanceReport -> Html

-- | Build a <a>Table</a> from a multi-column balance report.
multiBalanceReportAsTable :: ReportOpts -> MultiBalanceReport -> Table Text Text WideBuilder

-- | Given a table representing a multi-column balance report, render it in
--   a format suitable for console output. Amounts with more than two
--   commodities will be elided unless --no-elide is used.
multiBalanceReportTableAsText :: ReportOpts -> Table Text Text WideBuilder -> Builder

-- | Render the ODS table rows for a MultiBalanceReport. Returns the
--   heading row, 0 or more body rows, and the totals row if enabled.
multiBalanceReportAsSpreadsheet :: ReportOpts -> MultiBalanceReport -> ((Int, Int), [[Cell NumLines Text]])

-- | Render the Spreadsheet table rows (CSV, ODS, HTML) for a
--   MultiBalanceReport. Returns the heading row, 0 or more body rows, and
--   the totals row if enabled.
multiBalanceReportAsSpreadsheetParts :: AmountFormat -> ReportOpts -> MultiBalanceReport -> ([Cell NumLines Text], [[Cell NumLines Text]], [[Cell NumLines Text]])
multiBalanceHasTotalsColumn :: ReportOpts -> Bool
addTotalBorders :: [[Cell border text]] -> [[Cell NumLines text]]
simpleDateSpanCell :: DateSpan -> Cell NumLines Text
tidyColumnLabels :: [Text]
nbsp :: Text
data RowClass
Value :: RowClass
Total :: RowClass
tests_Balance :: TestTree
instance GHC.Internal.Enum.Bounded Hledger.Cli.Commands.Balance.RowClass
instance GHC.Internal.Enum.Enum Hledger.Cli.Commands.Balance.RowClass
instance GHC.Classes.Eq Hledger.Cli.Commands.Balance.RowClass
instance GHC.Classes.Ord Hledger.Cli.Commands.Balance.RowClass
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Balance.RowClass


-- | Common helpers for making multi-section balance report commands like
--   balancesheet, cashflow, and incomestatement.
module Hledger.Cli.CompoundBalanceCommand

-- | Description of a compound balance report command, from which we
--   generate the command's cmdargs mode and IO action. A compound balance
--   report command shows one or more sections/subreports, each with its
--   own title and subtotals row, in a certain order, plus a grand totals
--   row if there's more than one section. Examples are the balancesheet,
--   cashflow and incomestatement commands.
--   
--   Compound balance reports do sign normalisation: they show all account
--   balances as normally positive, unlike the ordinary BalanceReport and
--   most hledger commands which show income<i>liability</i>equity balances
--   as normally negative. Each subreport specifies the normal sign of its
--   amounts, and whether it should be added to or subtracted from the
--   grand total.
data CompoundBalanceCommandSpec
CompoundBalanceCommandSpec :: CommandHelpStr -> String -> [CBCSubreportSpec DisplayName] -> BalanceAccumulation -> CompoundBalanceCommandSpec

-- | the command's name(s) and documentation
[cbcdoc] :: CompoundBalanceCommandSpec -> CommandHelpStr

-- | overall report title
[cbctitle] :: CompoundBalanceCommandSpec -> String

-- | subreport details
[cbcqueries] :: CompoundBalanceCommandSpec -> [CBCSubreportSpec DisplayName]

-- | how to accumulate balances (per-period, cumulative, historical)
--   (overrides command line flags)
[cbcaccum] :: CompoundBalanceCommandSpec -> BalanceAccumulation

-- | Generate a cmdargs option-parsing mode from a compound balance command
--   specification.
compoundBalanceCommandMode :: CompoundBalanceCommandSpec -> Mode RawOpts

-- | Generate a runnable command from a compound balance command
--   specification.
compoundBalanceCommand :: CompoundBalanceCommandSpec -> CliOpts -> Journal -> IO ()


-- | The <tt>incomestatement</tt> command prints a simple income statement
--   (profit &amp; loss report).
module Hledger.Cli.Commands.Incomestatement
incomestatementmode :: Mode RawOpts
incomestatement :: CliOpts -> Journal -> IO ()


-- | The <tt>cashflow</tt> command prints a simplified cashflow statement.
--   It just shows the change in all "cash" accounts for the period
--   (without the traditional segmentation into operating, investing, and
--   financing cash flows.)
module Hledger.Cli.Commands.Cashflow
cashflowmode :: Mode RawOpts
cashflow :: CliOpts -> Journal -> IO ()


-- | The <tt>balancesheetequity</tt> command prints a simple balance sheet.
module Hledger.Cli.Commands.Balancesheetequity
balancesheetequitymode :: Mode RawOpts
balancesheetequity :: CliOpts -> Journal -> IO ()


-- | The <tt>balancesheet</tt> command prints a simple balance sheet.
module Hledger.Cli.Commands.Balancesheet
balancesheetmode :: Mode RawOpts
balancesheet :: CliOpts -> Journal -> IO ()


-- | The <tt>aregister</tt> command lists a single account's transactions,
--   like the account register in hledger-ui and hledger-web, and unlike
--   the register command which lists postings across multiple accounts.
module Hledger.Cli.Commands.Aregister
aregistermode :: Mode RawOpts

-- | Print an account register report for a specified account.
aregister :: CliOpts -> Journal -> IO ()
tests_Aregister :: TestTree


-- | A history-aware, tab-completing interactive add command to help with
--   data entry.
module Hledger.Cli.Commands.Add
addmode :: Mode RawOpts

-- | Read multiple transactions from the console, prompting for each field,
--   and append them to the journal file. If the journal came from stdin,
--   this command has no effect.
add :: CliOpts -> Journal -> IO ()

-- | Append a string, typically one or more transactions, to a journal
--   file, or if the file is "-", dump it to stdout. Tries to avoid excess
--   whitespace.
--   
--   XXX This writes unix line endings (n), some at least, even if the file
--   uses dos line endings (rn), which could leave mixed line endings in
--   the file. See also writeFileWithBackupIfChanged.
appendToJournalFileOrStdout :: FilePath -> Text -> IO ()

-- | Append this transaction to the journal's file and transaction list.
journalAddTransaction :: Journal -> CliOpts -> Transaction -> IO Journal
instance GHC.Internal.Exception.Type.Exception Hledger.Cli.Commands.Add.RestartTransactionException
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Add.AddState
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Add.PrevInput
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Add.RestartTransactionException
instance GHC.Internal.Show.Show Hledger.Cli.Commands.Add.TxnData

module Hledger.Cli.Commands.Import
importmode :: Mode RawOpts
importcmd :: CliOpts -> Journal -> IO ()


-- | Print a bar chart of posting activity per day, or other report
--   interval.
module Hledger.Cli.Commands.Activity
activitymode :: Mode RawOpts
barchar :: Char

-- | Print a bar chart of number of postings per report interval.
activity :: CliOpts -> Journal -> IO ()
showHistogram :: ReportSpec -> Journal -> String
printDayWith :: (PrintfArg t1, PrintfType t2, Show a) => (t3 -> t1) -> ((a, b), t3) -> t2
countBar :: Foldable t => t a -> [Char]


-- | The <tt>accounts</tt> command lists account names:
--   
--   <ul>
--   <li>in flat mode (default), it lists the full names of accounts posted
--   to by matched postings, clipped to the specified depth, possibly with
--   leading components dropped.</li>
--   <li>in tree mode, it shows the indented short names of accounts posted
--   to by matched postings, and their parents, to the specified
--   depth.</li>
--   </ul>
module Hledger.Cli.Commands.Accounts

-- | Command line options for this command.
accountsmode :: Mode RawOpts

-- | The accounts command.
accounts :: CliOpts -> Journal -> IO ()


-- | hledger's built-in commands, and helpers for printing the commands
--   list.
--   
--   New built-in commands should be added in four places below: the export
--   list, the import list, builtinCommands, commandsList.
module Hledger.Cli.Commands

-- | Display the commands list.
commands :: CliOpts -> Journal -> IO ()

-- | The test command, which runs the hledger and hledger-lib packages'
--   unit tests. Arguments following a -- argument will be passed to the
--   tasty test runner, and any arguments before -- will be passed as
--   test-selecting -p patterns.
--   
--   Unlike most hledger commands, this one does not read the user's
--   journal. A <a>Journal</a> argument remains in the type signature, but
--   it should not be used (and would raise an error).
testcmd :: CliOpts -> Journal -> IO ()

-- | The cmdargs subcommand mode (for command-line parsing) and IO action
--   (for doing the command's work) for each builtin command. Command
--   actions take parsed CLI options and a (lazy) finalised journal.
builtinCommands :: [(Mode RawOpts, CliOpts -> Journal -> IO ())]

-- | All names and aliases of the builtin commands.
builtinCommandNames :: [String]
addonCommandNames :: IO [String]

-- | Canonical names of the known addon commands which have a slot in the
--   commands list, in alphabetical order.
knownAddonCommandNames :: [String]

-- | Look up a builtin command's mode and action by exact command name or
--   alias.
findBuiltinCommand :: String -> Maybe (Mode RawOpts, CliOpts -> Journal -> IO ())

-- | Canonical names of all commands which have a slot in the commands
--   list, in alphabetical order. These include the builtin commands and
--   the known addon commands.
knownCommands :: [String]

-- | Print the commands list, with a pager if appropriate, customising the
--   commandsList template above with the given version string and the
--   installed addons. Uninstalled known addons will be removed from the
--   list, installed known addons will have the + prefix removed, and
--   installed unknown addons will be added under Misc.
printCommandsList :: String -> [String] -> IO ()
tests_Hledger_Cli :: TestTree


-- | This is the root module of the <tt>hledger</tt> package, providing
--   hledger's command-line interface. The main function, commands,
--   command-line options, and utilities useful to other hledger
--   command-line programs are exported. It also re-exports
--   hledger-lib:Hledger and cmdargs:System.Concole.CmdArgs.Explicit
--   
--   See also:
--   
--   <ul>
--   <li>hledger-lib:Hledger</li>
--   <li><a>The README files</a></li>
--   <li><a>The high-level developer docs</a></li>
--   </ul>
--   
--   hledger is a Haskell rewrite of John Wiegley's "ledger". It generates
--   financial reports from a plain text general journal. You can use the
--   command line:
--   
--   <pre>
--   $ hledger
--   </pre>
--   
--   or ghci:
--   
--   <pre>
--   $ make ghci
--   ghci&gt; Right j &lt;- runExceptT $ readJournalFile definputopts "examples/sample.journal"  -- or: j &lt;- defaultJournal
--   ghci&gt; :t j
--   j :: Journal
--   ghci&gt; stats defcliopts j
--   Main file                : examples/sample.journal
--   Included files           : 
--   Transactions span        : 2008-01-01 to 2009-01-01 (366 days)
--   Last transaction         : 2008-12-31 (733772 days from now)
--   Transactions             : 5 (0.0 per day)
--   Transactions last 30 days: 0 (0.0 per day)
--   Transactions last 7 days : 0 (0.0 per day)
--   Payees/descriptions      : 5
--   Accounts                 : 8 (depth 3)
--   Commodities              : 1 ($)
--   Market prices            : 0 ()
--   
--   Run time (throughput)    : 1695276900.00s (0 txns/s)
--   ghci&gt; balance defcliopts j
--                     $1  assets:bank:saving
--                    $-2  assets:cash
--                     $1  expenses:food
--                     $1  expenses:supplies
--                    $-1  income:gifts
--                    $-1  income:salary
--                     $1  liabilities:debts
--   --------------------
--                      0  
--   ghci&gt; 
--   </pre>
--   
--   etc.
--   
--   SPDX-License-Identifier: GPL-3.0-or-later Copyright (c) 2007-2025
--   (each year in this range) Simon Michael <a>simon@joyful.com</a> and
--   contributors.
--   
--   This program is free software: you can redistribute it and/or modify
--   it under the terms of the GNU General Public License as published by
--   the Free Software Foundation, either version 3 of the License, or (at
--   your option) any later version.
--   
--   This program is distributed in the hope that it will be useful, but
--   WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
--   General Public License for more details. You should have received a
--   copy of the GNU General Public License along with this program. If
--   not, see <a>https://www.gnu.org/licenses/</a>.
module Hledger.Cli

-- | hledger CLI's main procedure.
--   
--   Here we will parse the command line, read any config file, and search
--   for hledger-* addon executables in the user's PATH, then choose the
--   appropriate builtin operation or addon operation to run, then run it
--   in the right way, usually reading input data (eg a journal) first.
--   
--   When making a CLI usable and robust with main command, builtin
--   subcommands, various kinds of addon commands, and config files that
--   add general and command-specific options, while balancing circular
--   dependencies, environment, idioms, legacy, and libraries with their
--   own requirements and limitations: things get crazy, and there is a
--   tradeoff against complexity and bug risk. We try to provide the most
--   intuitive, expressive and robust CLI that's feasible while keeping the
--   CLI processing below sufficiently comprehensible, troubleshootable,
--   and tested. It's an ongoing quest. See also: Hledger.Cli.CliOptions,
--   cli.test, addons.test, --debug and --debug=8.
--   
--   Probably the biggest source of complexity here is that cmdargs can't
--   parse a command line containing undeclared flags, but this arises
--   often with our addon commands and builtin/custom commands which
--   haven't implemented all options, so we have to work hard to work
--   around this. <a>https://github.com/ndmitchell/cmdargs/issues/36</a> is
--   the wishlist issue; implementing that would simplify hledger's CLI
--   processing a lot.
main :: IO ()

-- | The overall cmdargs mode describing hledger's command-line options and
--   subcommands. The names of known addons are provided so they too can be
--   recognised as commands.
mainmode :: [Name] -> Mode RawOpts

-- | A helper for addons/scripts: this parses hledger CliOpts from these
--   command line arguments and add-on command names, roughly how hledger
--   main does. If option parsing/validating fails, it exits the program
--   with usageError. Unlike main, this does not read extra args from a
--   config file or search for addons; to do those things, mimic the code
--   in main for now.
argsToCliOpts :: [String] -> [String] -> IO CliOpts
charWidth :: Char -> Int
trace :: String -> a -> a
traceIO :: String -> IO ()
traceShowId :: Show a => a -> a
tests_Hledger :: TestTree
tests_Data :: TestTree
accountFromBalances :: AccountName -> PeriodData a -> Account a
accountFromPostings :: (Posting -> Maybe Day) -> [Posting] -> Account BalanceData
accountSetDeclarationInfo :: Journal -> Account a -> Account a
accountTree :: Monoid a => AccountName -> [AccountName] -> Account a
accountTreeFromBalanceAndNames :: AccountName -> PeriodData a -> [AccountName] -> Account a
accountsFromPostings :: (Posting -> Maybe Day) -> [Posting] -> [Account BalanceData]
accountsLevels :: Account a -> [[Account a]]
anyAccounts :: (Account a -> Bool) -> Account a -> Bool
clipAccounts :: Int -> Account a -> Account a
clipAccountsAndAggregate :: Monoid a => DepthSpec -> [Account a] -> [Account a]
filterAccounts :: (Account a -> Bool) -> Account a -> [Account a]
flattenAccounts :: Account a -> [Account a]
lookupAccount :: AccountName -> [Account a] -> Maybe (Account a)
mapAccounts :: (Account a -> Account a) -> Account a -> Account a
mapPeriodData :: (PeriodData a -> PeriodData a) -> Account a -> Account a
mergeAccounts :: Account a -> Account b -> Account (These a b)
nullacct :: Account BalanceData
parentAccounts :: Account a -> [Account a]
printAccounts :: Show a => Account a -> IO ()
pruneAccounts :: (Account a -> Bool) -> Account a -> Maybe (Account a)
showAccounts :: Show a => Account a -> String
showAccountsBoringFlag :: Account a -> String
sortAccountNamesByDeclaration :: Journal -> Bool -> [AccountName] -> [AccountName]
sortAccountTreeByDeclaration :: Account a -> Account a
sortAccountTreeOn :: Ord b => (Account a -> b) -> Account a -> Account a
sumAccounts :: Account BalanceData -> Account BalanceData
tests_Account :: TestTree
accountLeafName :: AccountName -> Text
accountNameApplyAliases :: [AccountAlias] -> AccountName -> Either RegexError AccountName
accountNameApplyAliasesMemo :: [AccountAlias] -> AccountName -> Either RegexError AccountName
accountNameComponents :: AccountName -> [Text]
accountNameDrop :: Int -> AccountName -> AccountName
accountNameFromComponents :: [Text] -> AccountName
accountNameInferType :: AccountName -> Maybe AccountType
accountNameInferTypeExcept :: [AccountType] -> AccountName -> Maybe AccountType
accountNameLevel :: AccountName -> Int
accountNamePostingType :: AccountName -> PostingType
accountNameToAccountOnlyRegex :: AccountName -> Regexp
accountNameToAccountOnlyRegexCI :: AccountName -> Regexp
accountNameToAccountRegex :: AccountName -> Regexp
accountNameToAccountRegexCI :: AccountName -> Regexp
accountNameTreeFrom :: [AccountName] -> Tree AccountName
accountNameType :: Map AccountName AccountType -> AccountName -> Maybe AccountType
accountNameWithPostingType :: PostingType -> AccountName -> AccountName
accountNameWithoutPostingType :: AccountName -> AccountName
accountSummarisedName :: AccountName -> Text
acctsep :: Text
acctsepchar :: Char
assetAccountRegex :: Regexp
cashAccountRegex :: Regexp
clipAccountName :: DepthSpec -> AccountName -> AccountName
clipOrEllipsifyAccountName :: DepthSpec -> AccountName -> AccountName
concatAccountNames :: [AccountName] -> AccountName
conversionAccountRegex :: Regexp
defaultBaseConversionAccount :: IsString a => a
elideAccountName :: Int -> AccountName -> AccountName
equityAccountRegex :: Regexp
escapeName :: AccountName -> Text
expandAccountName :: AccountName -> [AccountName]
expandAccountNames :: [AccountName] -> [AccountName]
expenseAccountRegex :: Regexp
getAccountNameClippedDepth :: DepthSpec -> AccountName -> Maybe Int
isAccountNamePrefixOf :: AccountName -> AccountName -> Bool
isSubAccountNameOf :: AccountName -> AccountName -> Bool
joinAccountNames :: AccountName -> AccountName -> AccountName
liabilityAccountRegex :: Regexp
parentAccountName :: AccountName -> AccountName
parentAccountNames :: AccountName -> [AccountName]
revenueAccountRegex :: Regexp
subAccountNamesFrom :: [AccountName] -> AccountName -> [AccountName]
tests_AccountName :: TestTree
topAccountName :: AccountName -> AccountName
topAccountNames :: [AccountName] -> [AccountName]
unbudgetedAccountName :: Text
(@@) :: Amount -> Amount -> Amount
amountCost :: Amount -> Amount
amountDisplayPrecision :: Amount -> Word8
amountInternalPrecision :: Amount -> Word8
amountIsZero :: Amount -> Bool
amountLooksZero :: Amount -> Bool
amountSetFullPrecision :: Amount -> Amount
amountSetFullPrecisionUpTo :: Maybe Word8 -> Amount -> Amount
amountSetPrecision :: AmountPrecision -> Amount -> Amount
amountSetPrecisionMax :: Word8 -> Amount -> Amount
amountSetPrecisionMin :: Word8 -> Amount -> Amount
amountSetStyles :: Map CommoditySymbol AmountStyle -> Amount -> Amount
amountStripCost :: Amount -> Amount
amountStyleSetRounding :: Rounding -> AmountStyle -> AmountStyle
amountStylesSetRounding :: Rounding -> Map CommoditySymbol AmountStyle -> Map CommoditySymbol AmountStyle
amountUnstyled :: Amount -> Amount
amountWithCommodity :: CommoditySymbol -> Amount -> Amount
amounts :: MixedAmount -> [Amount]
amountsPreservingZeros :: MixedAmount -> [Amount]
amountsRaw :: MixedAmount -> [Amount]
amountstyle :: AmountStyle
at :: Amount -> Amount -> Amount
averageMixedAmounts :: Foldable f => f MixedAmount -> MixedAmount
canonicaliseAmount :: Map CommoditySymbol AmountStyle -> Amount -> Amount
canonicaliseMixedAmount :: Map CommoditySymbol AmountStyle -> MixedAmount -> MixedAmount
commodityStylesFromAmounts :: [Amount] -> Either String (Map CommoditySymbol AmountStyle)
cshowAmount :: Amount -> String
defaultFmt :: AmountFormat
defaultMaxPrecision :: Word8
divideAmount :: Quantity -> Amount -> Amount
divideMixedAmount :: Quantity -> MixedAmount -> MixedAmount
eur :: DecimalRaw Integer -> Amount
filterMixedAmount :: (Amount -> Bool) -> MixedAmount -> MixedAmount
filterMixedAmountByCommodity :: CommoditySymbol -> MixedAmount -> MixedAmount
fullZeroFmt :: AmountFormat
gbp :: DecimalRaw Integer -> Amount
getAmounts :: Amount -> [Amount]
hrs :: Quantity -> Amount
invertAmount :: Amount -> Amount
isMissingMixedAmount :: MixedAmount -> Bool
isNegativeAmount :: Amount -> Bool
isNegativeMixedAmount :: MixedAmount -> Maybe Bool
isNonsimpleCommodityChar :: Char -> Bool
maAddAmount :: MixedAmount -> Amount -> MixedAmount
maAddAmounts :: Foldable t => MixedAmount -> t Amount -> MixedAmount
maCommodities :: MixedAmount -> Set CommoditySymbol
maIsNonZero :: MixedAmount -> Bool
maIsZero :: MixedAmount -> Bool
maMinus :: MixedAmount -> MixedAmount -> MixedAmount
maNegate :: MixedAmount -> MixedAmount
maPlus :: MixedAmount -> MixedAmount -> MixedAmount
maSum :: Foldable t => t MixedAmount -> MixedAmount
machineFmt :: AmountFormat
mapMixedAmount :: (Amount -> Amount) -> MixedAmount -> MixedAmount
missingamt :: Amount
missingmixedamt :: MixedAmount
mixed :: Foldable t => t Amount -> MixedAmount
mixedAmount :: Amount -> MixedAmount
mixedAmountCost :: MixedAmount -> MixedAmount
mixedAmountIsZero :: MixedAmount -> Bool
mixedAmountLooksZero :: MixedAmount -> Bool
mixedAmountSetFullPrecision :: MixedAmount -> MixedAmount
mixedAmountSetFullPrecisionUpTo :: Maybe Word8 -> MixedAmount -> MixedAmount
mixedAmountSetPrecision :: AmountPrecision -> MixedAmount -> MixedAmount
mixedAmountSetPrecisionMax :: Word8 -> MixedAmount -> MixedAmount
mixedAmountSetPrecisionMin :: Word8 -> MixedAmount -> MixedAmount
mixedAmountSetStyles :: Map CommoditySymbol AmountStyle -> MixedAmount -> MixedAmount
mixedAmountStripCosts :: MixedAmount -> MixedAmount
mixedAmountUnstyled :: MixedAmount -> MixedAmount
multiplyAmount :: Quantity -> Amount -> Amount
multiplyMixedAmount :: Quantity -> MixedAmount -> MixedAmount
noCostFmt :: AmountFormat
nullamt :: Amount
nullmixedamt :: MixedAmount
num :: Quantity -> Amount
oneLineFmt :: AmountFormat
oneLineNoCostFmt :: AmountFormat
per :: Quantity -> Amount
quoteCommoditySymbolIfNeeded :: Text -> Text
setAmountDecimalPoint :: Maybe Char -> Amount -> Amount
setAmountInternalPrecision :: Word8 -> Amount -> Amount
showAmount :: Amount -> String
showAmountB :: AmountFormat -> Amount -> WideBuilder
showAmountCost :: Amount -> String
showAmountCostB :: AmountFormat -> Amount -> WideBuilder
showAmountDebug :: Amount -> String
showAmountWith :: AmountFormat -> Amount -> String
showAmountWithZeroCommodity :: Amount -> String
showAmountWithoutCost :: Amount -> String
showCommoditySymbol :: Text -> Text
showMixedAmount :: MixedAmount -> String
showMixedAmountB :: AmountFormat -> MixedAmount -> WideBuilder
showMixedAmountDebug :: MixedAmount -> String
showMixedAmountElided :: Int -> Bool -> MixedAmount -> String
showMixedAmountLinesB :: AmountFormat -> MixedAmount -> [WideBuilder]
showMixedAmountLinesPartsB :: AmountFormat -> MixedAmount -> [(WideBuilder, Amount)]
showMixedAmountOneLine :: MixedAmount -> String
showMixedAmountOneLineWithoutCost :: Bool -> MixedAmount -> String
showMixedAmountWith :: AmountFormat -> MixedAmount -> String
showMixedAmountWithZeroCommodity :: MixedAmount -> String
showMixedAmountWithoutCost :: Bool -> MixedAmount -> String
styleAmount :: Map CommoditySymbol AmountStyle -> Amount -> Amount
styleMixedAmount :: Map CommoditySymbol AmountStyle -> MixedAmount -> MixedAmount
sumAndAverageMixedAmounts :: Foldable f => f MixedAmount -> (MixedAmount, MixedAmount)
tests_Amount :: TestTree
unifyMixedAmount :: MixedAmount -> Maybe Amount
usd :: DecimalRaw Integer -> Amount
withDecimalPoint :: Amount -> Maybe Char -> Amount
withInternalPrecision :: Amount -> Word8 -> Amount
withPrecision :: Amount -> AmountPrecision -> Amount
mapBalanceData :: (MixedAmount -> MixedAmount) -> BalanceData -> BalanceData
opBalanceData :: (MixedAmount -> MixedAmount -> MixedAmount) -> BalanceData -> BalanceData -> BalanceData
tests_BalanceData :: TestTree
balanceSingleTransaction :: BalancingOpts -> Transaction -> Either String Transaction
balanceTransactionHelper :: BalancingOpts -> Transaction -> Either String (Transaction, [(AccountName, MixedAmount)])
defbalancingopts :: BalancingOpts
isTransactionBalanced :: BalancingOpts -> Transaction -> Bool
journalBalanceTransactions :: BalancingOpts -> Journal -> Either String Journal
tests_Balancing :: TestTree
transactionCheckAssertions :: BalancingOpts -> Journal -> Transaction -> Either String Transaction
currencies :: [([Char], CurrencyCode, CurrencySymbol)]
currencyCodeToSymbol :: CurrencyCode -> Maybe CurrencySymbol
currencySymbolToCode :: CurrencySymbol -> Maybe CurrencyCode
addGregorianMonthsToMonthday :: MonthDay -> Integer -> Day -> Day
advanceToNthWeekday :: Int -> WeekDay -> Day -> Day
datesepchar :: forall (m :: Type -> Type). TextParser m Char
datesepchars :: String
daysInSpan :: DateSpan -> Maybe Integer
daysSpan :: [Day] -> DateSpan
elapsedSeconds :: Fractional a => UTCTime -> UTCTime -> a
emptydatespan :: DateSpan
fixSmartDate :: Day -> SmartDate -> EFDay
fixSmartDateStr :: Day -> Text -> Text
fixSmartDateStrEither :: Day -> Text -> Either HledgerParseErrors Text
fixSmartDateStrEither' :: Day -> Text -> Either HledgerParseErrors EFDay
getCurrentDay :: IO Day
getCurrentMonth :: IO Int
getCurrentYear :: IO Integer
groupByDateSpan :: Bool -> (a -> Day) -> [DateSpan] -> [a] -> [(DateSpan, [a])]
isDateSepChar :: Char -> Bool
isEmptySpan :: DateSpan -> Bool
latestSpanContaining :: [DateSpan] -> Day -> Maybe DateSpan
nextNthWeekdayOfMonth :: Int -> WeekDay -> Day -> Day
nextday :: Day -> Day
nextmonthandday :: Month -> MonthDay -> Day -> Day
nextnthdayofmonth :: MonthDay -> Day -> Day
nextweek :: Day -> Day
nthdayofweekcontaining :: WeekDay -> Day -> Day
nulldate :: Day
nulldatespan :: DateSpan
parsePeriodExpr :: Day -> Text -> Either HledgerParseErrors (Interval, DateSpan)
parsePeriodExpr' :: Day -> Text -> (Interval, DateSpan)
parsedate :: String -> Maybe Day
periodContainsDate :: Period -> Day -> Bool
periodexprp :: forall (m :: Type -> Type). Day -> TextParser m (Interval, DateSpan)
prevNthWeekdayOfMonth :: Int -> WeekDay -> Day -> Day
prevday :: Day -> Day
showDate :: Day -> Text
showDateSpan :: DateSpan -> Text
showDateSpanAbbrev :: DateSpan -> Text
showDateSpanDebug :: DateSpan -> String
showEFDate :: EFDay -> Text
smartdate :: forall (m :: Type -> Type). TextParser m SmartDate
spanContainsDate :: DateSpan -> Day -> Bool
spanDefaultsFrom :: DateSpan -> DateSpan -> DateSpan
spanEnd :: DateSpan -> Maybe Day
spanEndYear :: DateSpan -> Maybe Year
spanExtend :: DateSpan -> DateSpan -> DateSpan
spanIntersect :: DateSpan -> DateSpan -> DateSpan
spanStart :: DateSpan -> Maybe Day
spanStartYear :: DateSpan -> Maybe Year
spanUnion :: DateSpan -> DateSpan -> DateSpan
spanValidDefaultsFrom :: DateSpan -> DateSpan -> DateSpan
spanYears :: DateSpan -> [Year]
spansIntersect :: [DateSpan] -> DateSpan
spansSpan :: [DateSpan] -> DateSpan
spansUnion :: [DateSpan] -> DateSpan
startofmonth :: Day -> Day
startofquarter :: Day -> Day
startofweek :: Day -> Day
startofyear :: Day -> Day
yearp :: forall (m :: Type -> Type). TextParser m Integer
boundariesToDayPartition :: NonEmpty Day -> DayPartition
boundariesToMaybeDayPartition :: [Day] -> Maybe DayPartition
dayPartitionFind :: Day -> DayPartition -> (Maybe Day, Day)
dayPartitionStartEnd :: DayPartition -> (Day, Day)
dayPartitionToDateSpans :: DayPartition -> [DateSpan]
dayPartitionToList :: DayPartition -> [(Day, Day)]
dayPartitionToNonEmpty :: DayPartition -> NonEmpty (Day, Day)
intervalBoundaryBefore :: Interval -> Day -> Day
maybeDayPartitionToDateSpans :: Maybe DayPartition -> [DateSpan]
splitSpan :: Bool -> Interval -> DateSpan -> Maybe DayPartition
tests_DayPartition :: TestTree
unionDayPartitions :: DayPartition -> DayPartition -> Maybe DayPartition
makeAccountTagErrorExcerpt :: (AccountName, AccountDeclarationInfo) -> TagName -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makeBalanceAssertionErrorExcerpt :: Posting -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makePostingAccountErrorExcerpt :: Posting -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makePostingErrorExcerpt :: Posting -> (Posting -> Transaction -> Text -> Maybe (Int, Maybe Int)) -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makePriceDirectiveErrorExcerpt :: PriceDirective -> Maybe (PriceDirective -> Text -> Maybe (Int, Maybe Int)) -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makeTransactionErrorExcerpt :: Transaction -> (Transaction -> Maybe (Int, Maybe Int)) -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
transactionFindPostingIndex :: (Posting -> Bool) -> Transaction -> Maybe Int
addPeriodicTransaction :: PeriodicTransaction -> Journal -> Journal
addPriceDirective :: PriceDirective -> Journal -> Journal
addTransaction :: Transaction -> Journal -> Journal
addTransactionModifier :: TransactionModifier -> Journal -> Journal
dbgJournalAcctDeclOrder :: String -> Journal -> Journal
filterJournalAmounts :: Query -> Journal -> Journal
filterJournalPostings :: Query -> Journal -> Journal
filterJournalRelatedPostings :: Query -> Journal -> Journal
filterJournalTransactions :: Query -> Journal -> Journal
filterPostingAmount :: Query -> Posting -> Maybe Posting
filterTransactionAmounts :: Query -> Transaction -> Transaction
filterTransactionPostings :: Query -> Transaction -> Transaction
filterTransactionPostingsExtra :: (AccountName -> Maybe AccountType) -> Query -> Transaction -> Transaction
filterTransactionRelatedPostings :: Query -> Transaction -> Transaction
journalAccountNameTree :: Journal -> Tree AccountName
journalAccountNames :: Journal -> [AccountName]
journalAccountNamesDeclared :: Journal -> [AccountName]
journalAccountNamesDeclaredOrImplied :: Journal -> [AccountName]
journalAccountNamesDeclaredOrUsed :: Journal -> [AccountName]
journalAccountNamesImplied :: Journal -> [AccountName]
journalAccountNamesUsed :: Journal -> [AccountName]
journalAccountTags :: Journal -> AccountName -> [Tag]
journalAccountType :: Journal -> AccountName -> Maybe AccountType
journalAccountTypes :: Journal -> Map AccountName AccountType
journalAddAccountTypes :: Journal -> Journal
journalAmounts :: Journal -> Set Amount
journalApplyAliases :: [AccountAlias] -> Journal -> Either RegexError Journal
journalBaseConversionAccount :: Journal -> AccountName
journalCommodities :: Journal -> Set CommoditySymbol
journalCommoditiesDeclared :: Journal -> [CommoditySymbol]
journalCommoditiesFromPriceDirectives :: Journal -> Set CommoditySymbol
journalCommoditiesFromTransactions :: Journal -> Set CommoditySymbol
journalCommoditiesUsed :: Journal -> [CommoditySymbol]
journalCommodityStyles :: Journal -> Map CommoditySymbol AmountStyle
journalCommodityStylesWith :: Rounding -> Journal -> Map CommoditySymbol AmountStyle
journalConcat :: Journal -> Journal -> Journal
journalConversionAccounts :: Journal -> [AccountName]
journalDateSpan :: Bool -> Journal -> DateSpan
journalDateSpanBothDates :: Journal -> DateSpan
journalDbg :: Journal -> String
journalDescriptions :: Journal -> [Text]
journalEndDate :: Bool -> Journal -> Maybe Day
journalFilePath :: Journal -> FilePath
journalFilePaths :: Journal -> [FilePath]
journalInferCommodityStyles :: Journal -> Either String Journal
journalInferEquityFromCosts :: Bool -> Journal -> Journal
journalInferMarketPricesFromTransactions :: Journal -> Journal
journalInheritedAccountTags :: Journal -> AccountName -> [Tag]
journalLastDay :: Bool -> Journal -> Maybe Day
journalLeafAccountNames :: Journal -> [AccountName]
journalMapPostingAmounts :: (MixedAmount -> MixedAmount) -> Journal -> Journal
journalMapPostings :: (Posting -> Posting) -> Journal -> Journal
journalMapTransactions :: (Transaction -> Transaction) -> Journal -> Journal
journalModifyTransactions :: Bool -> Day -> Journal -> Either String Journal
journalNextTransaction :: Journal -> Transaction -> Maybe Transaction
journalNumberAndTieTransactions :: Journal -> Journal
journalNumberTransactions :: Journal -> Journal
journalPayeesDeclared :: Journal -> [Payee]
journalPayeesDeclaredOrUsed :: Journal -> [Payee]
journalPayeesUsed :: Journal -> [Payee]
journalPivot :: Text -> Journal -> Journal
journalPostingAmounts :: Journal -> [MixedAmount]
journalPostingAndCostAmounts :: Journal -> [Amount]
journalPostings :: Journal -> [Posting]
journalPostingsAddAccountTags :: Journal -> Journal
journalPostingsKeepAccountTagsOnly :: Journal -> Journal
journalPrevTransaction :: Journal -> Transaction -> Maybe Transaction
journalRenumberAccountDeclarations :: Journal -> Journal
journalReverse :: Journal -> Journal
journalSetLastReadTime :: POSIXTime -> Journal -> Journal
journalStartDate :: Bool -> Journal -> Maybe Day
journalStyleAmounts :: Journal -> Either String Journal
journalTagCostsAndEquityAndMaybeInferCosts :: Bool -> Bool -> Journal -> Either String Journal
journalTagsDeclared :: Journal -> [TagName]
journalTagsDeclaredOrUsed :: Journal -> [TagName]
journalTagsUsed :: Journal -> [TagName]
journalToCost :: ConversionOp -> Journal -> Journal
journalTransactionAt :: Journal -> Integer -> Maybe Transaction
journalTransactionsSimilarTo :: Journal -> Text -> Query -> SimilarityScore -> Int -> [(DateWeightedSimilarityScore, Age, SimilarityScore, Transaction)]
journalUntieTransactions :: Transaction -> Transaction
nulljournal :: Journal
samplejournal :: Journal
samplejournalMaybeExplicit :: Bool -> Journal
showJournalPostingAmountsDebug :: Journal -> String
tests_Journal :: TestTree
journalCheckAccounts :: Journal -> Either String ()
journalCheckBalanceAssertions :: Journal -> Either String ()
journalCheckCommodities :: Journal -> Either String ()
journalCheckPairedConversionPostings :: Journal -> Either String ()
journalCheckPayees :: Journal -> Either String ()
journalCheckRecentAssertions :: Journal -> Either String ()
journalCheckTags :: Journal -> Either String ()
journalStrictChecks :: Journal -> Either String ()
journalCheckOrdereddates :: Journal -> Either String ()
journalCheckUniqueleafnames :: Journal -> Either String ()
readJsonFile :: FromJSON a => FilePath -> IO a
toJsonText :: ToJSON a => a -> Text
writeJsonFile :: ToJSON a => FilePath -> a -> IO ()
ledgerAccount :: Ledger -> AccountName -> Maybe (Account BalanceData)
ledgerAccountNames :: Ledger -> [AccountName]
ledgerCommodities :: Ledger -> [CommoditySymbol]
ledgerDateSpan :: Ledger -> DateSpan
ledgerFromJournal :: Query -> Journal -> Ledger
ledgerLeafAccounts :: Ledger -> [Account BalanceData]
ledgerPostings :: Ledger -> [Posting]
ledgerRootAccount :: Ledger -> Account BalanceData
ledgerTopAccounts :: Ledger -> [Account BalanceData]
nullledger :: Ledger
tests_Ledger :: TestTree
dateSpanAsPeriod :: DateSpan -> Period
firstMonthOfQuarter :: Num a => a -> a
isLastDayOfMonth :: (Eq a1, Eq a2, Num a1, Num a2) => Year -> a1 -> a2 -> Bool
isStandardPeriod :: Period -> Bool
mondayBefore :: Day -> Day
periodAsDateSpan :: Period -> DateSpan
periodEnd :: Period -> Maybe Day
periodGrow :: Period -> Period
periodMoveTo :: Day -> Period -> Period
periodNext :: Period -> Period
periodNextIn :: DateSpan -> Period -> Period
periodPrevious :: Period -> Period
periodPreviousIn :: DateSpan -> Period -> Period
periodShrink :: Day -> Period -> Period
periodStart :: Period -> Maybe Day
periodTextWidth :: Period -> Int
quarterContainingMonth :: Integral a => a -> a
showPeriod :: Period -> Text
showPeriodAbbrev :: Period -> Text
simplifyPeriod :: Period -> Period
startOfFirstWeekInMonth :: Year -> MonthOfYear -> Day
thursdayOfWeekContaining :: Day -> Day
yearMonthContainingWeekStarting :: Day -> (Year, MonthOfYear)
insertPeriodData :: Semigroup a => Maybe Day -> a -> PeriodData a -> PeriodData a
lookupPeriodData :: Day -> PeriodData a -> Maybe (Day, a)
lookupPeriodDataOrHistorical :: Day -> PeriodData a -> (Maybe Day, a)
mergePeriodData :: (a -> c) -> (b -> c) -> (a -> b -> c) -> PeriodData a -> PeriodData b -> PeriodData c
opPeriodData :: (a -> b -> c) -> PeriodData a -> PeriodData b -> PeriodData c
padPeriodData :: a -> PeriodData b -> PeriodData a -> PeriodData a
periodDataFromList :: a -> [(Day, a)] -> PeriodData a
periodDataToList :: PeriodData a -> (a, [(Day, a)])
tests_PeriodData :: TestTree
checkPeriodicTransactionStartDate :: Interval -> DateSpan -> Text -> Maybe String
runPeriodicTransaction :: Bool -> PeriodicTransaction -> DateSpan -> [Transaction]
accountNamesFromPostings :: [Posting] -> [AccountName]
balassert :: Amount -> Maybe BalanceAssertion
balassertParInc :: Amount -> Maybe BalanceAssertion
balassertTot :: Amount -> Maybe BalanceAssertion
balassertTotInc :: Amount -> Maybe BalanceAssertion
commentAddTag :: Text -> Tag -> Text
commentAddTagNextLine :: Text -> Tag -> Text
commentAddTagUnspaced :: Text -> Tag -> Text
commentJoin :: Text -> Text -> Text
conversionPostingTagName :: TagName
costPostingTagName :: TagName
generatedPostingTagName :: TagName
generatedTransactionTagName :: TagName
hasAmount :: Posting -> Bool
hasBalanceAssignment :: Posting -> Bool
isBalancedVirtual :: Posting -> Bool
isEmptyPosting :: Posting -> Bool
isReal :: Posting -> Bool
isVirtual :: Posting -> Bool
modifiedTransactionTagName :: TagName
nullassertion :: BalanceAssertion
nullposting :: Posting
originalPosting :: Posting -> Posting
post :: AccountName -> Amount -> Posting
post' :: AccountName -> Amount -> Maybe BalanceAssertion -> Posting
posting :: Posting
postingAddHiddenAndMaybeVisibleTag :: Bool -> HiddenTag -> Posting -> Posting
postingAddInferredEquityPostings :: Bool -> Text -> Posting -> [Posting]
postingAddTags :: Posting -> [Tag] -> Posting
postingAllTags :: Posting -> [Tag]
postingApplyAliases :: [AccountAlias] -> Posting -> Either RegexError Posting
postingApplyCommodityStyles :: Map CommoditySymbol AmountStyle -> Posting -> Posting
postingApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> ValuationType -> Posting -> Posting
postingAsLines :: Bool -> Bool -> Int -> Int -> Posting -> ([Text], Int, Int)
postingDate :: Posting -> Day
postingDate2 :: Posting -> Day
postingDateOrDate2 :: WhichDate -> Posting -> Day
postingIndent :: Text -> Text
postingNegate :: Posting -> Posting
postingNegateMainAmount :: Posting -> Posting
postingPriceDirectivesFromCost :: Posting -> [PriceDirective]
postingStatus :: Posting -> Status
postingStripCosts :: Posting -> Posting
postingStyleAmounts :: Map CommoditySymbol AmountStyle -> Posting -> Posting
postingToCost :: ConversionOp -> Posting -> Maybe Posting
postingTransformAmount :: (MixedAmount -> MixedAmount) -> Posting -> Posting
postingsAsLines :: Bool -> [Posting] -> [Text]
relatedPostings :: Posting -> [Posting]
renderCommentLines :: Text -> [Text]
showAccountName :: Maybe Int -> PostingType -> AccountName -> Text
showBalanceAssertion :: BalanceAssertion -> WideBuilder
showPosting :: Posting -> String
showPostingLines :: Posting -> [Text]
sumPostings :: [Posting] -> MixedAmount
tests_Posting :: TestTree
transactionAllTags :: Transaction -> [Tag]
vpost :: AccountName -> Amount -> Posting
vpost' :: AccountName -> Amount -> Maybe BalanceAssertion -> Posting
appendopts :: [(String, String)] -> RawOpts -> RawOpts
boolopt :: String -> RawOpts -> Bool
choiceopt :: (String -> Maybe a) -> RawOpts -> Maybe a
collectopts :: ((String, String) -> Maybe a) -> RawOpts -> [a]
dropRawOpt :: String -> RawOpts -> RawOpts
intopt :: String -> RawOpts -> Int
listofstringopt :: String -> RawOpts -> [String]
maybecharopt :: String -> RawOpts -> Maybe Char
maybeintopt :: String -> RawOpts -> Maybe Int
maybeposintopt :: String -> RawOpts -> Maybe Int
maybestringopt :: String -> RawOpts -> Maybe String
maybeynaopt :: String -> RawOpts -> Maybe YNA
maybeynopt :: String -> RawOpts -> Maybe Bool
mkRawOpts :: [(String, String)] -> RawOpts
overRawOpts :: ([(String, String)] -> [(String, String)]) -> RawOpts -> RawOpts
posintopt :: String -> RawOpts -> Int
setboolopt :: String -> RawOpts -> RawOpts
setopt :: String -> String -> RawOpts -> RawOpts
stringopt :: String -> RawOpts -> String
toggleopt :: String -> RawOpts -> Bool
unsetboolopt :: String -> RawOpts -> RawOpts
defaultBalanceLineFormat :: StringFormat
defaultStringFormatStyle :: [StringFormatComponent] -> StringFormat
parseStringFormat :: Text -> Either String StringFormat
tests_StringFormat :: TestTree
tests_Timeclock :: TestTree
timeclockToTransactions :: LocalTime -> [TimeclockEntry] -> [Transaction]
timeclockToTransactionsOld :: LocalTime -> [TimeclockEntry] -> [Transaction]
annotateErrorWithTransaction :: Transaction -> String -> String
assignmentPostings :: Transaction -> [Posting]
balancedVirtualPostings :: Transaction -> [Posting]
hasRealPostings :: Transaction -> Bool
nulltransaction :: Transaction
partitionAndCheckConversionPostings :: Bool -> [AccountName] -> [IdxPosting] -> Either Text ([(IdxPosting, IdxPosting)], ([IdxPosting], [IdxPosting]))
payeeAndNoteFromDescription :: Text -> (Text, Text)
payeeAndNoteFromDescription' :: Text -> (Text, Text)
realPostings :: Transaction -> [Posting]
showTransaction :: Transaction -> Text
showTransactionLineFirstPart :: Transaction -> Text
showTransactionOneLineAmounts :: Transaction -> Text
tests_Transaction :: TestTree
transaction :: Day -> [Posting] -> Transaction
transactionAddHiddenAndMaybeVisibleTag :: Bool -> HiddenTag -> Transaction -> Transaction
transactionAddTags :: Transaction -> [Tag] -> Transaction
transactionAmounts :: Transaction -> [MixedAmount]
transactionApplyAliases :: [AccountAlias] -> Transaction -> Either RegexError Transaction
transactionApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> ValuationType -> Transaction -> Transaction
transactionCommodityStyles :: Transaction -> Map CommoditySymbol AmountStyle
transactionCommodityStylesWith :: Rounding -> Transaction -> Map CommoditySymbol AmountStyle
transactionDate2 :: Transaction -> Day
transactionDateOrDate2 :: WhichDate -> Transaction -> Day
transactionFile :: Transaction -> FilePath
transactionInferEquityPostings :: Bool -> AccountName -> Transaction -> Transaction
transactionMapPostingAmounts :: (MixedAmount -> MixedAmount) -> Transaction -> Transaction
transactionMapPostings :: (Posting -> Posting) -> Transaction -> Transaction
transactionNegate :: Transaction -> Transaction
transactionNote :: Transaction -> Text
transactionPayee :: Transaction -> Text
transactionTagCostsAndEquityAndMaybeInferCosts :: Bool -> Bool -> [AccountName] -> Transaction -> Either String Transaction
transactionToCost :: ConversionOp -> Transaction -> Transaction
transactionTransformPostings :: (Posting -> Posting) -> Transaction -> Transaction
transactionsPostings :: [Transaction] -> [Posting]
txnTieKnot :: Transaction -> Transaction
txnUntieKnot :: Transaction -> Transaction
virtualPostings :: Transaction -> [Posting]
modifyTransactions :: (AccountName -> Maybe AccountType) -> (AccountName -> [Tag]) -> Map CommoditySymbol AmountStyle -> Day -> Bool -> [TransactionModifier] -> [Transaction] -> Either String [Transaction]
fromEFDay :: EFDay -> Day
isAccountSubtypeOf :: AccountType -> AccountType -> Bool
isBalanceSheetAccountType :: AccountType -> Bool
isDecimalMark :: Char -> Bool
isHiddenTagName :: TagName -> Bool
isIncomeStatementAccountType :: AccountType -> Bool
maCompare :: MixedAmount -> MixedAmount -> Ordering
modifyEFDay :: (Day -> Day) -> EFDay -> EFDay
nullaccountdeclarationinfo :: AccountDeclarationInfo
nullpayeedeclarationinfo :: PayeeDeclarationInfo
nullperiodictransaction :: PeriodicTransaction
nullsourcepos :: SourcePos
nullsourcepospair :: (SourcePos, SourcePos)
nulltagdeclarationinfo :: TagDeclarationInfo
nulltransactionmodifier :: TransactionModifier
showMarketPrice :: MarketPrice -> String
showMarketPrices :: [MarketPrice] -> [Char]
toHiddenTag :: Tag -> HiddenTag
toHiddenTagName :: TagName -> TagName
toVisibleTag :: HiddenTag -> Tag
toVisibleTagName :: TagName -> TagName
amountPriceDirectiveFromCost :: Day -> Amount -> Maybe PriceDirective
journalPriceOracle :: Bool -> Journal -> PriceOracle
marketPriceReverse :: MarketPrice -> MarketPrice
mixedAmountApplyGain :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> Day -> ValuationType -> MixedAmount -> MixedAmount
mixedAmountApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> Day -> ValuationType -> MixedAmount -> MixedAmount
mixedAmountGainAtDate :: PriceOracle -> Map CommoditySymbol AmountStyle -> Maybe CommoditySymbol -> Day -> MixedAmount -> MixedAmount
mixedAmountToCost :: Map CommoditySymbol AmountStyle -> ConversionOp -> MixedAmount -> MixedAmount
mixedAmountValueAtDate :: PriceOracle -> Map CommoditySymbol AmountStyle -> Maybe CommoditySymbol -> Day -> MixedAmount -> MixedAmount
priceDirectiveToMarketPrice :: PriceDirective -> MarketPrice
tests_Valuation :: TestTree
valuationTypeValuationCommodity :: ValuationType -> Maybe CommoditySymbol
filterQuery :: (Query -> Bool) -> Query -> Query
filterQueryOrNotQuery :: (Query -> Bool) -> Query -> Query
generatedTransactionTag :: Query
inAccount :: [QueryOpt] -> Maybe (AccountName, Bool)
inAccountQuery :: [QueryOpt] -> Maybe Query
matchesAccount :: Query -> AccountName -> Bool
matchesAccountExtra :: (AccountName -> Maybe AccountType) -> (AccountName -> [Tag]) -> Query -> AccountName -> Bool
matchesAmount :: Query -> Amount -> Bool
matchesCommodity :: Query -> CommoditySymbol -> Bool
matchesDescription :: Query -> Text -> Bool
matchesMixedAmount :: Query -> MixedAmount -> Bool
matchesPayeeWIP :: Query -> Payee -> Bool
matchesPosting :: Query -> Posting -> Bool
matchesPostingExtra :: (AccountName -> Maybe AccountType) -> Query -> Posting -> Bool
matchesPriceDirective :: Query -> PriceDirective -> Bool
matchesQuery :: (Query -> Bool) -> Query -> Bool
matchesTag :: Query -> Tag -> Bool
matchesTransaction :: Query -> Transaction -> Bool
matchesTransactionExtra :: (AccountName -> Maybe AccountType) -> Query -> Transaction -> Bool
noteTag :: Maybe Text -> Either RegexError Query
parseAccountType :: Bool -> Text -> Either String AccountType
parseDepthSpec :: Text -> Either RegexError DepthSpec
parseQuery :: Day -> Text -> Either String (Query, [QueryOpt])
parseQueryList :: Day -> [Text] -> Either String (Query, [QueryOpt])
parseQueryTerm :: Day -> Text -> Either String (Query, [QueryOpt])
payeeTag :: Maybe Text -> Either RegexError Query
queryDateSpan :: Bool -> Query -> DateSpan
queryDateSpan' :: Query -> DateSpan
queryDepth :: Query -> DepthSpec
queryEndDate :: Bool -> Query -> Maybe Day
queryIsAcct :: Query -> Bool
queryIsAmt :: Query -> Bool
queryIsAmtOrSym :: Query -> Bool
queryIsCode :: Query -> Bool
queryIsDate :: Query -> Bool
queryIsDate2 :: Query -> Bool
queryIsDateOrDate2 :: Query -> Bool
queryIsDepth :: Query -> Bool
queryIsDesc :: Query -> Bool
queryIsNull :: Query -> Bool
queryIsReal :: Query -> Bool
queryIsStartDateOnly :: Bool -> Query -> Bool
queryIsStatus :: Query -> Bool
queryIsSym :: Query -> Bool
queryIsTag :: Query -> Bool
queryIsTransactionRelated :: Query -> Bool
queryIsType :: Query -> Bool
queryStartDate :: Bool -> Query -> Maybe Day
queryprefixes :: [Text]
simplifyQuery :: Query -> Query
tests_Query :: TestTree
words'' :: [Text] -> Text -> [Text]
defaultJournal :: IO Journal
defaultJournalPath :: IO String
defaultJournalPathSafely :: IO (Either String String)
defaultJournalSafely :: IO (Either String Journal)
defaultJournalWith :: InputOpts -> IO Journal
defaultJournalWithSafely :: InputOpts -> IO (Either String Journal)
ensureJournalFileExists :: FilePath -> IO ()
isWindowsUnsafeDotPath :: FilePath -> Bool
journalDefaultFilename :: FilePath
journalEnvVar :: String
orDieTrying :: MonadIO m => ExceptT String m a -> m a
readJournal :: InputOpts -> Maybe FilePath -> Handle -> ExceptT String IO Journal
readJournal' :: Handle -> IO Journal
readJournal'' :: Text -> IO Journal
readJournalFile :: InputOpts -> PrefixedFilePath -> ExceptT String IO Journal
readJournalFile' :: PrefixedFilePath -> IO Journal
readJournalFiles :: InputOpts -> [PrefixedFilePath] -> ExceptT String IO Journal
readJournalFiles' :: [PrefixedFilePath] -> IO Journal
readJournalFilesAndLatestDates :: InputOpts -> [PrefixedFilePath] -> ExceptT String IO (Journal, [LatestDatesForFile])
requireJournalFileExists :: FilePath -> IO ()
saveLatestDates :: LatestDates -> FilePath -> IO ()
saveLatestDatesForFiles :: [LatestDatesForFile] -> IO ()
tests_Read :: TestTree
accountaliasp :: forall (m :: Type -> Type). TextParser m AccountAlias
accountnamenosemicolonp :: forall (m :: Type -> Type). TextParser m AccountName
accountnamep :: forall (m :: Type -> Type). TextParser m AccountName
addAccountAlias :: MonadState Journal m => AccountAlias -> m ()
addDeclaredAccountTags :: forall (m :: Type -> Type). AccountName -> [Tag] -> JournalParser m ()
addDeclaredAccountType :: forall (m :: Type -> Type). AccountName -> AccountType -> JournalParser m ()
aliasesFromOpts :: InputOpts -> [AccountAlias]
amountp :: forall (m :: Type -> Type). JournalParser m Amount
amountp' :: forall (m :: Type -> Type). Bool -> JournalParser m Amount
balanceassertionp :: forall (m :: Type -> Type). JournalParser m BalanceAssertion
bracketeddatetagsp :: forall (m :: Type -> Type). Maybe Year -> TextParser m [(TagName, Day)]
clearAccountAliases :: MonadState Journal m => m ()
codep :: forall (m :: Type -> Type). TextParser m Text
commentlinetagsp :: forall (m :: Type -> Type). TextParser m [Tag]
commoditysymbolp :: forall (m :: Type -> Type). TextParser m CommoditySymbol
costp :: forall (m :: Type -> Type). Amount -> JournalParser m AmountCost
datep :: forall (m :: Type -> Type). JournalParser m Day
datetimep :: forall (m :: Type -> Type). JournalParser m LocalTime
descriptionp :: forall (m :: Type -> Type). TextParser m Text
doublequotedtextp :: forall (m :: Type -> Type). TextParser m Text
emptyorcommentlinep :: forall (m :: Type -> Type). TextParser m ()
emptyorcommentlinep2 :: forall (m :: Type -> Type). [Char] -> TextParser m ()
followingcommentp :: forall (m :: Type -> Type). TextParser m Text
fromRawNumber :: RawNumber -> Maybe Integer -> Either String (Quantity, Word8, Maybe Char, Maybe DigitGroupStyle)
getAccountAliases :: MonadState Journal m => m [AccountAlias]
getAmountStyle :: forall (m :: Type -> Type). CommoditySymbol -> JournalParser m (Maybe AmountStyle)
getDefaultAmountStyle :: forall (m :: Type -> Type). JournalParser m (Maybe AmountStyle)
getDefaultCommodityAndStyle :: forall (m :: Type -> Type). JournalParser m (Maybe (CommoditySymbol, AmountStyle))
getParentAccount :: forall (m :: Type -> Type). JournalParser m AccountName
getYear :: forall (m :: Type -> Type). JournalParser m (Maybe Year)
handleReadFnToTextReadFn :: (InputOpts -> FilePath -> Text -> ExceptT String IO Journal) -> InputOpts -> FilePath -> Handle -> ExceptT String IO Journal
initialiseAndParseJournal :: ErroringJournalParser IO ParsedJournal -> InputOpts -> FilePath -> Text -> ExceptT String IO Journal
isLineCommentStart :: Char -> Bool
isSameLineCommentStart :: Char -> Bool
isStdin :: PrefixedFilePath -> Bool
journalAddAutoPostings :: Bool -> Day -> BalancingOpts -> Journal -> Either String Journal
journalAddFile :: (FilePath, Text) -> Journal -> Journal
journalAddForecast :: Bool -> Maybe DateSpan -> Journal -> Journal
journalFinalise :: InputOpts -> FilePath -> Text -> ParsedJournal -> ExceptT String IO Journal
lotcostp :: forall (m :: Type -> Type). JournalParser m ()
modifiedaccountnamep :: forall (m :: Type -> Type). Bool -> JournalParser m AccountName
multilinecommentp :: forall (m :: Type -> Type). TextParser m ()
noncommenttext1p :: forall (m :: Type -> Type). TextParser m Text
noncommenttextp :: forall (m :: Type -> Type). TextParser m Text
numberp :: forall (m :: Type -> Type). Maybe AmountStyle -> TextParser m (Quantity, Word8, Maybe Char, Maybe DigitGroupStyle)
parseAndFinaliseJournal :: ErroringJournalParser IO ParsedJournal -> InputOpts -> FilePath -> Text -> ExceptT String IO Journal
parseamount :: String -> Either HledgerParseErrors Amount
parseamount' :: String -> Amount
parsemixedamount :: String -> Either HledgerParseErrors MixedAmount
parsemixedamount' :: String -> MixedAmount
popParentAccount :: forall (m :: Type -> Type). JournalParser m ()
postingcommentp :: forall (m :: Type -> Type). Maybe Year -> TextParser m (Text, [Tag], Maybe Day, Maybe Day)
pushParentAccount :: forall (m :: Type -> Type). AccountName -> JournalParser m ()
rawOptsToInputOpts :: Day -> Bool -> Bool -> RawOpts -> InputOpts
rawnumberp :: forall (m :: Type -> Type). TextParser m (Either AmbiguousNumber RawNumber)
secondarydatep :: forall (m :: Type -> Type). Day -> TextParser m Day
setDefaultCommodityAndStyle :: forall (m :: Type -> Type). (CommoditySymbol, AmountStyle) -> JournalParser m ()
setYear :: forall (m :: Type -> Type). Year -> JournalParser m ()
singlespacednoncommenttext1p :: forall (m :: Type -> Type). TextParser m Text
singlespacedtext1p :: forall (m :: Type -> Type). TextParser m Text
singlespacedtextsatisfying1p :: forall (m :: Type -> Type). (Char -> Bool) -> TextParser m Text
singlespacep :: forall (m :: Type -> Type). TextParser m ()
spaceandamountormissingp :: forall (m :: Type -> Type). JournalParser m MixedAmount
statusp :: forall (m :: Type -> Type). TextParser m Status
tests_Common :: TestTree
transactioncommentp :: forall (m :: Type -> Type). TextParser m (Text, [Tag])
definputopts :: InputOpts
forecastPeriod :: InputOpts -> Journal -> Maybe DateSpan
findReader :: forall (m :: Type -> Type). MonadIO m => Maybe StorageFormat -> Maybe FilePath -> Maybe (Reader m)
runJournalParser :: Monad m => JournalParser m a -> Text -> m (Either HledgerParseErrors a)
splitReaderPrefix :: PrefixedFilePath -> (Maybe StorageFormat, FilePath)
tmpostingrulep :: forall (m :: Type -> Type). Maybe Year -> JournalParser m TMPostingRule
tests_Reports :: TestTree
accountTransactionsReport :: ReportSpec -> Journal -> Query -> AccountTransactionsReport
accountTransactionsReportByCommodity :: AccountTransactionsReport -> [(CommoditySymbol, AccountTransactionsReport)]
accountTransactionsReportItems :: Query -> Query -> MixedAmount -> (MixedAmount -> MixedAmount) -> (AccountName -> Maybe AccountType) -> [(Day, Transaction)] -> [AccountTransactionsReportItem]
tests_AccountTransactionsReport :: TestTree
transactionRegisterDate :: WhichDate -> Query -> Query -> Transaction -> Day
triAmount :: (a, b, c, d, e, f) -> e
triBalance :: (a, b, c, d, e, f) -> f
triCommodityAmount :: CommoditySymbol -> (a, b, c, d, MixedAmount, f) -> MixedAmount
triCommodityBalance :: CommoditySymbol -> (a, b, c, d, e, MixedAmount) -> MixedAmount
triDate :: (a, Transaction, c, d, e, f) -> Day
triOrigTransaction :: (a, b, c, d, e, f) -> a
balanceReport :: ReportSpec -> Journal -> BalanceReport
flatShowsExclusiveBalance :: Bool
tests_BalanceReport :: TestTree
budgetReport :: ReportSpec -> BalancingOpts -> DateSpan -> Journal -> BudgetReport
tests_BudgetReport :: TestTree
entriesReport :: ReportSpec -> Journal -> EntriesReport
tests_EntriesReport :: TestTree
compoundBalanceReport :: ReportSpec -> Journal -> [CBCSubreportSpec a] -> CompoundPeriodicReport a MixedAmount
compoundBalanceReportWith :: ReportSpec -> Journal -> PriceOracle -> [CBCSubreportSpec a] -> CompoundPeriodicReport a MixedAmount
generateMultiBalanceAccount :: ReportSpec -> Journal -> PriceOracle -> Maybe DayPartition -> [Posting] -> Account BalanceData
generatePeriodicReport :: Show c => (forall a. () => ReportOpts -> (BalanceData -> MixedAmount) -> a -> Account b -> PeriodicReportRow a c) -> (b -> MixedAmount) -> (c -> MixedAmount) -> ReportOpts -> Maybe DayPartition -> Account b -> PeriodicReport DisplayName c
getPostings :: ReportSpec -> Journal -> PriceOracle -> DateSpan -> [Posting]
makePeriodicReportRow :: c -> (Map Day c -> (c, c)) -> ReportOpts -> (b -> c) -> a -> Account b -> PeriodicReportRow a c
makeReportQuery :: ReportSpec -> DateSpan -> ReportSpec
multiBalanceReport :: ReportSpec -> Journal -> MultiBalanceReport
multiBalanceReportWith :: ReportSpec -> Journal -> PriceOracle -> MultiBalanceReport
tests_MultiBalanceReport :: TestTree
mkpostingsReportItem :: Bool -> Bool -> WhichDate -> Maybe Period -> Posting -> MixedAmount -> PostingsReportItem
postingsReport :: ReportSpec -> Journal -> PostingsReport
tests_PostingsReport :: TestTree
balanceAccumulationOverride :: RawOpts -> Maybe BalanceAccumulation
defreportopts :: ReportOpts
defreportspec :: ReportSpec
defsortspec :: SortSpec
flat_ :: ReportOpts -> Bool
intervalFromRawOpts :: RawOpts -> Interval
journalApplyValuationFromOpts :: ReportSpec -> Journal -> Journal
journalApplyValuationFromOptsWith :: ReportSpec -> Journal -> PriceOracle -> Journal
journalValueAndFilterPostings :: ReportSpec -> Journal -> Journal
journalValueAndFilterPostingsWith :: ReportSpec -> Journal -> PriceOracle -> Journal
mixedAmountApplyValuationAfterSumFromOptsWith :: ReportOpts -> Journal -> PriceOracle -> Day -> MixedAmount -> MixedAmount
overEither :: ((a -> Either e b) -> s -> Either e t) -> (a -> b) -> s -> Either e t
postingDateFn :: ReportOpts -> Posting -> Day
queryFromFlags :: ReportOpts -> Query
rawOptsToReportOpts :: Day -> Bool -> RawOpts -> ReportOpts
rawOptsToReportSpec :: Day -> Bool -> RawOpts -> Either String ReportSpec
reportEndDate :: Journal -> ReportSpec -> Maybe Day
reportOptsToSpec :: Day -> ReportOpts -> Either String ReportSpec
reportOptsToggleStatus :: Status -> ReportOpts -> ReportOpts
reportPeriodLastDay :: ReportSpec -> Maybe Day
reportPeriodName :: BalanceAccumulation -> [DateSpan] -> DateSpan -> Text
reportPeriodOrJournalLastDay :: ReportSpec -> Journal -> Maybe Day
reportPeriodOrJournalStart :: ReportSpec -> Journal -> Maybe Day
reportPeriodStart :: ReportSpec -> Maybe Day
reportSpan :: Journal -> ReportSpec -> (DateSpan, Maybe DayPartition)
reportSpanBothDates :: Journal -> ReportSpec -> (DateSpan, Maybe DayPartition)
reportStartDate :: Journal -> ReportSpec -> Maybe Day
requiresHistorical :: ReportOpts -> Bool
setDefaultConversionOp :: ConversionOp -> ReportSpec -> ReportSpec
setEither :: ((a -> Either e b) -> s -> Either e t) -> b -> s -> Either e t
simplifyStatuses :: Ord a => [a] -> [a]
sortKeysDescription :: [Char]
transactionDateFn :: ReportOpts -> Transaction -> Day
tree_ :: ReportOpts -> Bool
updateReportSpec :: ReportOpts -> ReportSpec -> Either String ReportSpec
updateReportSpecWith :: (ReportOpts -> ReportOpts) -> ReportSpec -> Either String ReportSpec
valuationAfterSum :: ReportOpts -> Maybe (Maybe CommoditySymbol)
whichDate :: ReportOpts -> WhichDate
flatDisplayName :: AccountName -> DisplayName
periodicReportSpan :: PeriodicReport a b -> DateSpan
prMapMaybeName :: (a -> Maybe b) -> PeriodicReport a c -> PeriodicReport b c
prMapName :: (a -> b) -> PeriodicReport a c -> PeriodicReport b c
prrAdd :: Semigroup b => PeriodicReportRow a b -> PeriodicReportRow a b -> PeriodicReportRow a b
prrDisplayName :: PeriodicReportRow DisplayName a -> AccountName
prrFullName :: PeriodicReportRow DisplayName a -> AccountName
prrIndent :: PeriodicReportRow DisplayName a -> Int
prrShowDebug :: PeriodicReportRow DisplayName MixedAmount -> String
treeDisplayName :: AccountName -> DisplayName
all1 :: (a -> Bool) -> [a] -> Bool
applyN :: Int -> (a -> a) -> a -> a
curry2 :: ((a, b) -> c) -> a -> b -> c
curry3 :: ((a, b, c) -> d) -> a -> b -> c -> d
curry4 :: ((a, b, c, d) -> e) -> a -> b -> c -> d -> e
fifth5 :: (a, b, c, d, e) -> e
fifth6 :: (a, b, c, d, e, f) -> e
first3 :: (a, b, c) -> a
first4 :: (a, b, c, d) -> a
first5 :: (a, b, c, d, e) -> a
first6 :: (a, b, c, d, e, f) -> a
fourth4 :: (a, b, c, d) -> d
fourth5 :: (a, b, c, d, e) -> d
fourth6 :: (a, b, c, d, e, f) -> d
makeHledgerClassyLenses :: Name -> DecsQ
mapM' :: Monad f => (a -> f b) -> [a] -> f [b]
maximum' :: Integral a => [a] -> a
maximumStrict :: Ord a => [a] -> a
minimumStrict :: Ord a => [a] -> a
multicol :: Int -> [String] -> String
numDigitsInt :: Integral a => Int -> a
numDigitsInteger :: Integer -> Int
second3 :: (a, b, c) -> b
second4 :: (a, b, c, d) -> b
second5 :: (a, b, c, d, e) -> b
second6 :: (a, b, c, d, e, f) -> b
sequence' :: Monad f => [f a] -> f [a]
sixth6 :: (a, b, c, d, e, f) -> f
splitAtElement :: Eq a => a -> [a] -> [[a]]
sumStrict :: Num a => [a] -> a
takeUntilFails :: (a -> Bool) -> [a] -> [a]
takeUntilFailsNE :: (a -> Bool) -> NonEmpty a -> NonEmpty a
tests_Utils :: TestTree
third3 :: (a, b, c) -> c
third4 :: (a, b, c, d) -> c
third5 :: (a, b, c, d, e) -> c
third6 :: (a, b, c, d, e, f) -> c
treeLeaves :: Tree a -> [a]
uncurry2 :: (a -> b -> c) -> (a, b) -> c
uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e
dbg :: Show a => Int -> String -> a -> a
dbg0 :: Show a => String -> a -> a
dbg0IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg0Msg :: String -> a -> a
dbg0MsgIO :: MonadIO m => String -> m ()
dbg0With :: (a -> String) -> a -> a
dbg1 :: Show a => String -> a -> a
dbg1IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg1Msg :: String -> a -> a
dbg1MsgIO :: MonadIO m => String -> m ()
dbg1With :: (a -> String) -> a -> a
dbg2 :: Show a => String -> a -> a
dbg2IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg2Msg :: String -> a -> a
dbg2MsgIO :: MonadIO m => String -> m ()
dbg2With :: (a -> String) -> a -> a
dbg3 :: Show a => String -> a -> a
dbg3IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg3Msg :: String -> a -> a
dbg3MsgIO :: MonadIO m => String -> m ()
dbg3With :: (a -> String) -> a -> a
dbg4 :: Show a => String -> a -> a
dbg4IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg4Msg :: String -> a -> a
dbg4MsgIO :: MonadIO m => String -> m ()
dbg4With :: (a -> String) -> a -> a
dbg5 :: Show a => String -> a -> a
dbg5IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg5Msg :: String -> a -> a
dbg5MsgIO :: MonadIO m => String -> m ()
dbg5With :: (a -> String) -> a -> a
dbg6 :: Show a => String -> a -> a
dbg6IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg6Msg :: String -> a -> a
dbg6MsgIO :: MonadIO m => String -> m ()
dbg6With :: (a -> String) -> a -> a
dbg7 :: Show a => String -> a -> a
dbg7IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg7Msg :: String -> a -> a
dbg7MsgIO :: MonadIO m => String -> m ()
dbg7With :: (a -> String) -> a -> a
dbg8 :: Show a => String -> a -> a
dbg8IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg8Msg :: String -> a -> a
dbg8MsgIO :: MonadIO m => String -> m ()
dbg8With :: (a -> String) -> a -> a
dbg9 :: Show a => String -> a -> a
dbg9IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg9Msg :: String -> a -> a
dbg9MsgIO :: MonadIO m => String -> m ()
dbg9With :: (a -> String) -> a -> a
dbgIO :: (MonadIO m, Show a) => Int -> String -> a -> m ()
dbgMsg :: Int -> String -> a -> a
dbgMsgIO :: MonadIO m => Int -> String -> m ()
dbgWith :: Int -> (a -> String) -> a -> a
dbg_ :: Show a => Int -> String -> a -> a
debugLevel :: Int
ghcDebugMode :: GhcDebugMode
ghcDebugPause' :: IO ()
ghcDebugSupportedInLib :: Bool
lbl_ :: String -> String -> String -> String
progName :: String
withGhcDebug' :: a -> a
ansiFormatError :: String -> String
ansiFormatWarning :: String -> String
bgColor :: ColorIntensity -> Color -> String -> String
bgColorB :: ColorIntensity -> Color -> WideBuilder -> WideBuilder
black' :: String -> String
blue' :: String -> String
bold' :: String -> String
brightBlack' :: String -> String
brightBlue' :: String -> String
brightCyan' :: String -> String
brightGreen' :: String -> String
brightMagenta' :: String -> String
brightRed' :: String -> String
brightWhite' :: String -> String
brightYellow' :: String -> String
color :: ColorIntensity -> Color -> String -> String
colorB :: ColorIntensity -> Color -> WideBuilder -> WideBuilder
colorOption :: IO YNA
cyan' :: String -> String
embedFileRelative :: FilePath -> Q Exp
error' :: String -> a
exitWithErrorMessage :: String -> IO ()
expandGlob :: FilePath -> FilePath -> IO [FilePath]
expandHomePath :: FilePath -> IO FilePath
expandPath :: FilePath -> FilePath -> IO FilePath
faint' :: String -> String
findPager :: IO (Maybe String)
getCurrentLocalTime :: IO LocalTime
getCurrentZonedTime :: IO ZonedTime
getFlag :: [String] -> IO Bool
getHomeSafe :: IO (Maybe FilePath)
getOpt :: [String] -> IO (Maybe String)
getTerminalHeight :: IO (Maybe Int)
getTerminalHeightWidth :: IO (Maybe (Int, Int))
getTerminalWidth :: IO (Maybe Int)
green' :: String -> String
hGetContentsPortably :: Maybe DynEncoding -> Handle -> IO Text
handleExit :: IO () -> IO ()
magenta' :: String -> String
openFileOrStdin :: String -> IO Handle
parseYN :: String -> Either String Bool
parseYNA :: String -> Either String YNA
pprint :: Show a => a -> IO ()
pprint' :: Show a => a -> IO ()
printError :: String -> IO ()
progArgs :: [String]
pshow :: Show a => a -> String
pshow' :: Show a => a -> String
readFileOrStdinPortably :: String -> IO Text
readFileOrStdinPortably' :: Maybe DynEncoding -> String -> IO Text
readFilePortably :: FilePath -> IO Text
readFileStrictly :: FilePath -> IO Text
red' :: String -> String
rgb' :: Float -> Float -> Float -> String -> String
runPager :: String -> IO ()
setupPager :: IO ()
sgrresetall :: String
sortByModTime :: [FilePath] -> IO [FilePath]
terminalBgColor :: Maybe (RGB Float)
terminalFgColor :: Maybe (RGB Float)
terminalIsLight :: Maybe Bool
terminalLightness :: Maybe Float
textToHandle :: Text -> IO Handle
usageError :: String -> a
useColorOnStderr :: IO Bool
useColorOnStderrUnsafe :: Bool
useColorOnStdout :: IO Bool
useColorOnStdoutUnsafe :: Bool
warn :: String -> a -> a
warnIO :: MonadIO m => String -> m ()
white' :: String -> String
yellow' :: String -> String
attachSource :: FilePath -> Text -> FinalParseError' e -> FinalParseErrorBundle' e
choice' :: forall (m :: Type -> Type) a. [TextParser m a] -> TextParser m a
choiceInState :: forall s (m :: Type -> Type) a. [StateT s (ParsecT HledgerParseErrorData Text m) a] -> StateT s (ParsecT HledgerParseErrorData Text m) a
customErrorBundlePretty :: HledgerParseErrors -> String
dbgparse :: forall (m :: Type -> Type). Int -> String -> TextParser m ()
eolof :: forall (m :: Type -> Type). TextParser m ()
excerpt_ :: MonadParsec HledgerParseErrorData Text m => m a -> m SourceExcerpt
finalCustomFailure :: (MonadParsec e s m, MonadError (FinalParseError' e) m) => e -> m a
finalError :: ParseError Text e -> FinalParseError' e
finalErrorBundlePretty :: FinalParseErrorBundle' HledgerParseErrorData -> String
finalFail :: (MonadParsec e s m, MonadError (FinalParseError' e) m) => String -> m a
finalFancyFailure :: (MonadParsec e s m, MonadError (FinalParseError' e) m) => Set (ErrorFancy e) -> m a
fromparse :: (Show t, Show (Token t), Show e) => Either (ParseErrorBundle t e) a -> a
getExcerptText :: SourceExcerpt -> Text
isNewline :: Char -> Bool
isNonNewlineSpace :: Char -> Bool
nonspace :: forall (m :: Type -> Type). TextParser m Char
parseErrorAt :: Int -> String -> HledgerParseErrorData
parseErrorAtRegion :: Int -> Int -> String -> HledgerParseErrorData
parseIncludeFile :: forall (m :: Type -> Type) st a. Monad m => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError m)) a -> st -> FilePath -> Text -> StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError m)) a
parseWithState :: Monad m => st -> StateT st (ParsecT HledgerParseErrorData Text m) a -> Text -> m (Either HledgerParseErrors a)
parseWithState' :: Stream s => st -> StateT st (ParsecT e s Identity) a -> s -> Either (ParseErrorBundle s e) a
parseerror :: (Show t, Show (Token t), Show e) => ParseErrorBundle t e -> a
parsewith :: Parsec e Text a -> Text -> Either (ParseErrorBundle Text e) a
parsewithString :: Parsec e String a -> String -> Either (ParseErrorBundle String e) a
reparseExcerpt :: forall (m :: Type -> Type) a. Monad m => SourceExcerpt -> ParsecT HledgerParseErrorData Text m a -> ParsecT HledgerParseErrorData Text m a
restofline :: forall (m :: Type -> Type). TextParser m String
rtp :: TextParser Identity a -> Text -> Either HledgerParseErrors a
runTextParser :: TextParser Identity a -> Text -> Either HledgerParseErrors a
showDateParseError :: (Show t, Show (Token t), Show e) => ParseErrorBundle t e -> String
skipNonNewlineSpaces :: forall s (m :: Type -> Type). (Stream s, Token s ~ Char) => ParsecT HledgerParseErrorData s m ()
skipNonNewlineSpaces' :: forall s (m :: Type -> Type). (Stream s, Token s ~ Char) => ParsecT HledgerParseErrorData s m Bool
skipNonNewlineSpaces1 :: forall s (m :: Type -> Type). (Stream s, Token s ~ Char) => ParsecT HledgerParseErrorData s m ()
sourcePosPairPretty :: (SourcePos, SourcePos) -> String
spacenonewline :: forall s (m :: Type -> Type). (Stream s, Char ~ Token s) => ParsecT HledgerParseErrorData s m Char
surroundedBy :: Applicative m => m openclose -> m a -> m a
regexMatch :: Regexp -> String -> Bool
regexMatchText :: Regexp -> Text -> Bool
regexMatchTextGroups :: Regexp -> Text -> [Text]
regexReplace :: Regexp -> Replacement -> String -> Either RegexError String
regexReplaceAllBy :: Regexp -> (String -> String) -> String -> String
regexReplaceUnmemo :: Regexp -> Replacement -> String -> Either RegexError String
toRegex :: Text -> Either RegexError Regexp
toRegex' :: Text -> Regexp
toRegexCI :: Text -> Either RegexError Regexp
toRegexCI' :: Text -> Regexp
capitalise :: String -> String
chomp :: String -> String
chomp1 :: String -> String
elideLeft :: Int -> String -> String
elideRight :: Int -> String -> String
formatString :: Bool -> Maybe Int -> Maybe Int -> String -> String
lowercase :: String -> String
lstrip :: String -> String
quoteForCommandLine :: String -> String
quoteIfNeeded :: String -> String
rstrip :: String -> String
singleQuoteIfNeeded :: String -> String
singleline :: String -> String
strWidth :: String -> Int
strWidthAnsi :: String -> Int
strip :: String -> String
strip1By :: (Char -> Bool) -> String -> String
strip1Char :: Char -> Char -> String -> String
stripAnsi :: String -> String
stripBy :: (Char -> Bool) -> String -> String
stripbrackets :: String -> String
takeEnd :: Int -> [a] -> [a]
takeWidth :: Int -> String -> String
underline :: String -> String
uppercase :: String -> String
words' :: String -> [String]
assertLeft :: (HasCallStack, Eq b, Show b) => Either a b -> Assertion
assertParse :: (HasCallStack, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> Assertion
assertParseE :: (HasCallStack, Eq a, Show a, Default st) => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError IO)) a -> Text -> Assertion
assertParseEq :: (HasCallStack, Eq a, Show a, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> a -> Assertion
assertParseEqE :: (Default st, Eq a, Show a, HasCallStack) => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError IO)) a -> Text -> a -> Assertion
assertParseEqOn :: (HasCallStack, Eq b, Show b, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> (a -> b) -> b -> Assertion
assertParseError :: (HasCallStack, Eq a, Show a, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> String -> Assertion
assertParseErrorE :: (Default st, Eq a, Show a, HasCallStack) => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError IO)) a -> Text -> String -> Assertion
assertParseStateOn :: (HasCallStack, Eq b, Show b, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> (st -> b) -> b -> Assertion
assertRight :: (HasCallStack, Eq a, Show a) => Either a b -> Assertion
escapeBackslash :: Text -> Text
escapeDoubleQuotes :: Text -> Text
fitText :: Maybe Int -> Maybe Int -> Bool -> Bool -> Text -> Text
formatText :: Bool -> Maybe Int -> Maybe Int -> Text -> Text
linesPrepend :: Text -> Text -> Text
linesPrepend2 :: Text -> Text -> Text -> Text
quoteIfSpaced :: Text -> Text
readDecimal :: Text -> Integer
stripquotes :: Text -> Text
tests_Text :: TestTree
textCapitalise :: Text -> Text
textChomp :: Text -> Text
textConcatBottomPadded :: [Text] -> Text
textConcatTopPadded :: [Text] -> Text
textElideRight :: Int -> Text -> Text
textQuoteIfNeeded :: Text -> Text
textTakeWidth :: Int -> Text -> Text
textUnbracket :: Text -> Text
unlinesB :: [Builder] -> Builder
wrap :: Text -> Text -> Text -> Text
wbFromText :: Text -> WideBuilder
wbToText :: WideBuilder -> Text
wbUnpack :: WideBuilder -> String
initialPos :: FilePath -> SourcePos
mkPos :: Int -> Pos
sourcePosPretty :: SourcePos -> String
unPos :: Pos -> Int
adjustOption :: IsOption v => (v -> v) -> TestTree -> TestTree
askOption :: IsOption v => (v -> TestTree) -> TestTree
defaultIngredients :: [Ingredient]
localOption :: IsOption v => v -> TestTree -> TestTree
withResource :: IO a -> (a -> IO ()) -> (IO a -> TestTree) -> TestTree
defaultMainWithIngredients :: [Ingredient] -> TestTree -> IO ()
after :: DependencyType -> String -> TestTree -> TestTree
after_ :: DependencyType -> Expr -> TestTree -> TestTree
sequentialTestGroup :: TestName -> DependencyType -> [TestTree] -> TestTree
testGroup :: TestName -> [TestTree] -> TestTree
includingOptions :: [OptionDescription] -> Ingredient
mkTimeout :: Integer -> Timeout
testCase :: TestName -> Assertion -> TestTree
testCaseInfo :: TestName -> IO String -> TestTree
(@=?) :: (Eq a, Show a, HasCallStack) => a -> a -> Assertion
(@?) :: (AssertionPredicable t, HasCallStack) => t -> String -> Assertion
(@?=) :: (Eq a, Show a, HasCallStack) => a -> a -> Assertion
assertBool :: HasCallStack => String -> Bool -> Assertion
assertEqual :: (Eq a, Show a, HasCallStack) => String -> a -> a -> Assertion
assertFailure :: HasCallStack => String -> IO a
assertString :: HasCallStack => String -> Assertion
testCaseSteps :: TestName -> ((String -> IO ()) -> Assertion) -> TestTree
runExceptT :: ExceptT e m a -> m (Either e a)
type HasCallStack = ?callStack :: CallStack
data AmountFormat
AmountFormat :: Bool -> Bool -> Maybe [CommoditySymbol] -> Bool -> Bool -> Bool -> Maybe Int -> Maybe Int -> Bool -> Bool -> Bool -> AmountFormat
[displayCommodity] :: AmountFormat -> Bool
[displayZeroCommodity] :: AmountFormat -> Bool
[displayCommodityOrder] :: AmountFormat -> Maybe [CommoditySymbol]
[displayDigitGroups] :: AmountFormat -> Bool
[displayForceDecimalMark] :: AmountFormat -> Bool
[displayOneLine] :: AmountFormat -> Bool
[displayMinWidth] :: AmountFormat -> Maybe Int
[displayMaxWidth] :: AmountFormat -> Maybe Int
[displayCost] :: AmountFormat -> Bool
[displayColour] :: AmountFormat -> Bool
[displayQuotes] :: AmountFormat -> Bool
data BalancingOpts
BalancingOpts :: Bool -> Bool -> Maybe (Map CommoditySymbol AmountStyle) -> TransactionBalancingPrecision -> BalancingOpts
[ignore_assertions_] :: BalancingOpts -> Bool
[infer_balancing_costs_] :: BalancingOpts -> Bool
[commodity_styles_] :: BalancingOpts -> Maybe (Map CommoditySymbol AmountStyle)
[txn_balancing_] :: BalancingOpts -> TransactionBalancingPrecision
class HasBalancingOpts c
balancingOpts :: HasBalancingOpts c => Lens' c BalancingOpts
commodity_styles :: HasBalancingOpts c => Lens' c (Maybe (Map CommoditySymbol AmountStyle))
ignore_assertions :: HasBalancingOpts c => Lens' c Bool
infer_balancing_costs :: HasBalancingOpts c => Lens' c Bool
txn_balancing :: HasBalancingOpts c => Lens' c TransactionBalancingPrecision
data DayPartition
type ErroringJournalParser (m :: Type -> Type) a = StateT Journal ParsecT HledgerParseErrorData Text ExceptT FinalParseError m a
type JournalParser (m :: Type -> Type) a = StateT Journal ParsecT HledgerParseErrorData Text m a
data RawOpts
data ReportItemField
AccountField :: ReportItemField
DefaultDateField :: ReportItemField
DescriptionField :: ReportItemField
TotalField :: ReportItemField
DepthSpacerField :: ReportItemField
FieldNo :: Int -> ReportItemField
data StringFormat
OneLine :: [StringFormatComponent] -> StringFormat
TopAligned :: [StringFormatComponent] -> StringFormat
BottomAligned :: [StringFormatComponent] -> StringFormat
data StringFormatComponent
FormatLiteral :: Text -> StringFormatComponent
FormatField :: Bool -> Maybe Int -> Maybe Int -> ReportItemField -> StringFormatComponent
data TransactionBalancingPrecision
TBPOld :: TransactionBalancingPrecision
TBPExact :: TransactionBalancingPrecision
data Account a
Account :: AccountName -> Maybe AccountDeclarationInfo -> [Account a] -> Maybe (Account a) -> Bool -> PeriodData a -> Account a
[aname] :: Account a -> AccountName
[adeclarationinfo] :: Account a -> Maybe AccountDeclarationInfo
[asubs] :: Account a -> [Account a]
[aparent] :: Account a -> Maybe (Account a)
[aboring] :: Account a -> Bool
[adata] :: Account a -> PeriodData a
data AccountAlias
BasicAlias :: AccountName -> AccountName -> AccountAlias
RegexAlias :: Regexp -> Replacement -> AccountAlias
data AccountDeclarationInfo
AccountDeclarationInfo :: Text -> [Tag] -> Int -> SourcePos -> AccountDeclarationInfo
[adicomment] :: AccountDeclarationInfo -> Text
[aditags] :: AccountDeclarationInfo -> [Tag]
[adideclarationorder] :: AccountDeclarationInfo -> Int
[adisourcepos] :: AccountDeclarationInfo -> SourcePos
type AccountName = Text
data AccountType
Asset :: AccountType
Liability :: AccountType
Equity :: AccountType
Revenue :: AccountType
Expense :: AccountType
Cash :: AccountType
Conversion :: AccountType
data Amount
Amount :: !CommoditySymbol -> !Quantity -> !AmountStyle -> !Maybe AmountCost -> Amount
[acommodity] :: Amount -> !CommoditySymbol
[aquantity] :: Amount -> !Quantity
[astyle] :: Amount -> !AmountStyle
[acost] :: Amount -> !Maybe AmountCost
data AmountCost
UnitCost :: !Amount -> AmountCost
TotalCost :: !Amount -> AmountCost
data AmountPrecision
Precision :: !Word8 -> AmountPrecision
NaturalPrecision :: AmountPrecision
data AmountStyle
AmountStyle :: !Side -> !Bool -> !Maybe DigitGroupStyle -> !Maybe Char -> !AmountPrecision -> !Rounding -> AmountStyle
[ascommodityside] :: AmountStyle -> !Side
[ascommodityspaced] :: AmountStyle -> !Bool
[asdigitgroups] :: AmountStyle -> !Maybe DigitGroupStyle
[asdecimalmark] :: AmountStyle -> !Maybe Char
[asprecision] :: AmountStyle -> !AmountPrecision
[asrounding] :: AmountStyle -> !Rounding
data BalanceAssertion
BalanceAssertion :: Amount -> Bool -> Bool -> SourcePos -> BalanceAssertion
[baamount] :: BalanceAssertion -> Amount
[batotal] :: BalanceAssertion -> Bool
[bainclusive] :: BalanceAssertion -> Bool
[baposition] :: BalanceAssertion -> SourcePos
data BalanceData
BalanceData :: MixedAmount -> MixedAmount -> Int -> BalanceData
[bdexcludingsubs] :: BalanceData -> MixedAmount
[bdincludingsubs] :: BalanceData -> MixedAmount
[bdnumpostings] :: BalanceData -> Int
data Commodity
Commodity :: CommoditySymbol -> Maybe AmountStyle -> Commodity
[csymbol] :: Commodity -> CommoditySymbol
[cformat] :: Commodity -> Maybe AmountStyle
type CommoditySymbol = Text
data DateSpan
DateSpan :: Maybe EFDay -> Maybe EFDay -> DateSpan
type DateTag = (TagName, Day)
type DecimalMark = Char
data DepthSpec
DepthSpec :: Maybe Int -> [(Regexp, Int)] -> DepthSpec
[dsFlatDepth] :: DepthSpec -> Maybe Int
[dsRegexpDepths] :: DepthSpec -> [(Regexp, Int)]
data DigitGroupStyle
DigitGroups :: !Char -> ![Word8] -> DigitGroupStyle
data EFDay
Exact :: Day -> EFDay
Flex :: Day -> EFDay
class HasAmounts a
styleAmounts :: HasAmounts a => Map CommoditySymbol AmountStyle -> a -> a
type HiddenTag = Tag
data Interval
NoInterval :: Interval
Days :: Int -> Interval
Weeks :: Int -> Interval
Months :: Int -> Interval
Quarters :: Int -> Interval
Years :: Int -> Interval
NthWeekdayOfMonth :: Int -> Int -> Interval
MonthDay :: Int -> Interval
MonthAndDay :: Int -> Int -> Interval
DaysOfWeek :: [Int] -> Interval
data Journal
Journal :: Maybe Year -> Maybe (CommoditySymbol, AmountStyle) -> Maybe DecimalMark -> [AccountName] -> [AccountAlias] -> [TimeclockEntry] -> [FilePath] -> [(Payee, PayeeDeclarationInfo)] -> [(TagName, TagDeclarationInfo)] -> [(AccountName, AccountDeclarationInfo)] -> Map AccountName [Tag] -> Map AccountType [AccountName] -> Map AccountName AccountType -> Map CommoditySymbol Commodity -> Map CommoditySymbol AmountStyle -> Map CommoditySymbol AmountStyle -> [PriceDirective] -> [MarketPrice] -> [TransactionModifier] -> [PeriodicTransaction] -> [Transaction] -> Text -> [(FilePath, Text)] -> POSIXTime -> Journal
[jparsedefaultyear] :: Journal -> Maybe Year
[jparsedefaultcommodity] :: Journal -> Maybe (CommoditySymbol, AmountStyle)
[jparsedecimalmark] :: Journal -> Maybe DecimalMark
[jparseparentaccounts] :: Journal -> [AccountName]
[jparsealiases] :: Journal -> [AccountAlias]
[jparsetimeclockentries] :: Journal -> [TimeclockEntry]
[jincludefilestack] :: Journal -> [FilePath]
[jdeclaredpayees] :: Journal -> [(Payee, PayeeDeclarationInfo)]
[jdeclaredtags] :: Journal -> [(TagName, TagDeclarationInfo)]
[jdeclaredaccounts] :: Journal -> [(AccountName, AccountDeclarationInfo)]
[jdeclaredaccounttags] :: Journal -> Map AccountName [Tag]
[jdeclaredaccounttypes] :: Journal -> Map AccountType [AccountName]
[jaccounttypes] :: Journal -> Map AccountName AccountType
[jdeclaredcommodities] :: Journal -> Map CommoditySymbol Commodity
[jinferredcommoditystyles] :: Journal -> Map CommoditySymbol AmountStyle
[jglobalcommoditystyles] :: Journal -> Map CommoditySymbol AmountStyle
[jpricedirectives] :: Journal -> [PriceDirective]
[jinferredmarketprices] :: Journal -> [MarketPrice]
[jtxnmodifiers] :: Journal -> [TransactionModifier]
[jperiodictxns] :: Journal -> [PeriodicTransaction]
[jtxns] :: Journal -> [Transaction]
[jfinalcommentlines] :: Journal -> Text
[jfiles] :: Journal -> [(FilePath, Text)]
[jlastreadtime] :: Journal -> POSIXTime
data Ledger
Ledger :: Journal -> [Account BalanceData] -> Ledger
[ljournal] :: Ledger -> Journal
[laccounts] :: Ledger -> [Account BalanceData]
data MarketPrice
MarketPrice :: Day -> CommoditySymbol -> CommoditySymbol -> Quantity -> MarketPrice
[mpdate] :: MarketPrice -> Day
[mpfrom] :: MarketPrice -> CommoditySymbol
[mpto] :: MarketPrice -> CommoditySymbol
[mprate] :: MarketPrice -> Quantity
data MixedAmount
pattern MixedAmountKeyNoCost :: () => !CommoditySymbol -> MixedAmountKey
pattern MixedAmountKeyTotalCost :: () => !CommoditySymbol -> !CommoditySymbol -> MixedAmountKey
pattern MixedAmountKeyUnitCost :: () => !CommoditySymbol -> !CommoditySymbol -> !Quantity -> MixedAmountKey
type Month = Int
type MonthDay = Int
type MonthWeek = Int
data NormalSign
NormallyPositive :: NormalSign
NormallyNegative :: NormalSign
type ParsedJournal = Journal
type Payee = Text
data PayeeDeclarationInfo
PayeeDeclarationInfo :: Text -> [Tag] -> PayeeDeclarationInfo
[pdicomment] :: PayeeDeclarationInfo -> Text
[pditags] :: PayeeDeclarationInfo -> [Tag]
data Period
DayPeriod :: Day -> Period
WeekPeriod :: Day -> Period
MonthPeriod :: Year -> Month -> Period
QuarterPeriod :: Year -> Quarter -> Period
YearPeriod :: Year -> Period
PeriodBetween :: Day -> Day -> Period
PeriodFrom :: Day -> Period
PeriodTo :: Day -> Period
PeriodAll :: Period
data PeriodData a
PeriodData :: a -> Map Day a -> PeriodData a
[pdpre] :: PeriodData a -> a
[pdperiods] :: PeriodData a -> Map Day a
data PeriodicTransaction
PeriodicTransaction :: Text -> Interval -> DateSpan -> (SourcePos, SourcePos) -> Status -> Text -> Text -> Text -> [Tag] -> [Posting] -> PeriodicTransaction
[ptperiodexpr] :: PeriodicTransaction -> Text
[ptinterval] :: PeriodicTransaction -> Interval
[ptspan] :: PeriodicTransaction -> DateSpan
[ptsourcepos] :: PeriodicTransaction -> (SourcePos, SourcePos)
[ptstatus] :: PeriodicTransaction -> Status
[ptcode] :: PeriodicTransaction -> Text
[ptdescription] :: PeriodicTransaction -> Text
[ptcomment] :: PeriodicTransaction -> Text
[pttags] :: PeriodicTransaction -> [Tag]
[ptpostings] :: PeriodicTransaction -> [Posting]
data Posting
Posting :: Maybe Day -> Maybe Day -> Status -> AccountName -> MixedAmount -> Text -> PostingType -> [Tag] -> Maybe BalanceAssertion -> Maybe Transaction -> Maybe Posting -> Posting
[pdate] :: Posting -> Maybe Day
[pdate2] :: Posting -> Maybe Day
[pstatus] :: Posting -> Status
[paccount] :: Posting -> AccountName
[pamount] :: Posting -> MixedAmount
[pcomment] :: Posting -> Text
[ptype] :: Posting -> PostingType
[ptags] :: Posting -> [Tag]
[pbalanceassertion] :: Posting -> Maybe BalanceAssertion
[ptransaction] :: Posting -> Maybe Transaction
[poriginal] :: Posting -> Maybe Posting
data PostingType
RegularPosting :: PostingType
VirtualPosting :: PostingType
BalancedVirtualPosting :: PostingType
data PriceDirective
PriceDirective :: SourcePos -> Day -> CommoditySymbol -> Amount -> PriceDirective
[pdsourcepos] :: PriceDirective -> SourcePos
[pddate] :: PriceDirective -> Day
[pdcommodity] :: PriceDirective -> CommoditySymbol
[pdamount] :: PriceDirective -> Amount
type Quantity = Decimal
type Quarter = Int
data Rounding
NoRounding :: Rounding
SoftRounding :: Rounding
HardRounding :: Rounding
AllRounding :: Rounding
data SepFormat
Csv :: SepFormat
Tsv :: SepFormat
Ssv :: SepFormat
data Side
L :: Side
R :: Side
data SmartDate
SmartCompleteDate :: Day -> SmartDate
SmartAssumeStart :: Year -> Maybe Month -> SmartDate
SmartFromReference :: Maybe Month -> MonthDay -> SmartDate
SmartMonth :: Month -> SmartDate
SmartRelative :: Integer -> SmartInterval -> SmartDate
data SmartInterval
Day :: SmartInterval
Week :: SmartInterval
Month :: SmartInterval
Quarter :: SmartInterval
Year :: SmartInterval
data Status
Unmarked :: Status
Pending :: Status
Cleared :: Status
data StorageFormat
Rules :: StorageFormat
Journal' :: StorageFormat
Ledger' :: StorageFormat
Timeclock :: StorageFormat
Timedot :: StorageFormat
Sep :: SepFormat -> StorageFormat
data TMPostingRule
TMPostingRule :: Posting -> Bool -> TMPostingRule
[tmprPosting] :: TMPostingRule -> Posting
[tmprIsMultiplier] :: TMPostingRule -> Bool
type Tag = (TagName, TagValue)
newtype TagDeclarationInfo
TagDeclarationInfo :: Text -> TagDeclarationInfo
[tdicomment] :: TagDeclarationInfo -> Text
type TagName = Text
type TagValue = Text
data TimeclockCode
SetBalance :: TimeclockCode
SetRequiredHours :: TimeclockCode
In :: TimeclockCode
Out :: TimeclockCode
FinalOut :: TimeclockCode
data TimeclockEntry
TimeclockEntry :: SourcePos -> TimeclockCode -> LocalTime -> AccountName -> Text -> Text -> [Tag] -> TimeclockEntry
[tlsourcepos] :: TimeclockEntry -> SourcePos
[tlcode] :: TimeclockEntry -> TimeclockCode
[tldatetime] :: TimeclockEntry -> LocalTime
[tlaccount] :: TimeclockEntry -> AccountName
[tldescription] :: TimeclockEntry -> Text
[tlcomment] :: TimeclockEntry -> Text
[tltags] :: TimeclockEntry -> [Tag]
data Transaction
Transaction :: Integer -> Text -> (SourcePos, SourcePos) -> Day -> Maybe Day -> Status -> Text -> Text -> Text -> [Tag] -> [Posting] -> Transaction
[tindex] :: Transaction -> Integer
[tprecedingcomment] :: Transaction -> Text
[tsourcepos] :: Transaction -> (SourcePos, SourcePos)
[tdate] :: Transaction -> Day
[tdate2] :: Transaction -> Maybe Day
[tstatus] :: Transaction -> Status
[tcode] :: Transaction -> Text
[tdescription] :: Transaction -> Text
[tcomment] :: Transaction -> Text
[ttags] :: Transaction -> [Tag]
[tpostings] :: Transaction -> [Posting]
data TransactionModifier
TransactionModifier :: Text -> [TMPostingRule] -> TransactionModifier
[tmquerytxt] :: TransactionModifier -> Text
[tmpostingrules] :: TransactionModifier -> [TMPostingRule]
type WeekDay = Int
data WhichDate
PrimaryDate :: WhichDate
SecondaryDate :: WhichDate
type YearDay = Int
type YearWeek = Int
data ConversionOp
NoConversionOp :: ConversionOp
ToCost :: ConversionOp
type PriceOracle = (Day, CommoditySymbol, Maybe CommoditySymbol) -> Maybe (CommoditySymbol, Quantity)
data ValuationType
AtThen :: Maybe CommoditySymbol -> ValuationType
AtEnd :: Maybe CommoditySymbol -> ValuationType
AtNow :: Maybe CommoditySymbol -> ValuationType
AtDate :: Day -> Maybe CommoditySymbol -> ValuationType
data OrdPlus
Lt :: OrdPlus
LtEq :: OrdPlus
Gt :: OrdPlus
GtEq :: OrdPlus
Eq :: OrdPlus
AbsLt :: OrdPlus
AbsLtEq :: OrdPlus
AbsGt :: OrdPlus
AbsGtEq :: OrdPlus
AbsEq :: OrdPlus
data Query
Any :: Query
None :: Query
Date :: DateSpan -> Query
Date2 :: DateSpan -> Query
StatusQ :: Status -> Query
Code :: Regexp -> Query
Desc :: Regexp -> Query
Tag :: Regexp -> Maybe Regexp -> Query
Acct :: Regexp -> Query
Type :: [AccountType] -> Query
Depth :: Int -> Query
DepthAcct :: Regexp -> Int -> Query
Real :: Bool -> Query
Amt :: OrdPlus -> Quantity -> Query
Sym :: Regexp -> Query
Not :: Query -> Query
And :: [Query] -> Query
Or :: [Query] -> Query
AnyPosting :: [Query] -> Query
AllPostings :: [Query] -> Query
data QueryOpt
QueryOptInAcctOnly :: AccountName -> QueryOpt
QueryOptInAcct :: AccountName -> QueryOpt
type PrefixedFilePath = FilePath
data Reader (m :: Type -> Type)
Reader :: StorageFormat -> [String] -> (InputOpts -> FilePath -> Handle -> ExceptT String IO Journal) -> (MonadIO m => InputOpts -> ErroringJournalParser m ParsedJournal) -> Reader (m :: Type -> Type)
[rFormat] :: Reader (m :: Type -> Type) -> StorageFormat
[rExtensions] :: Reader (m :: Type -> Type) -> [String]
[rReadFn] :: Reader (m :: Type -> Type) -> InputOpts -> FilePath -> Handle -> ExceptT String IO Journal
[rParser] :: Reader (m :: Type -> Type) -> MonadIO m => InputOpts -> ErroringJournalParser m ParsedJournal
class HasInputOpts c
inputOpts :: HasInputOpts c => Lens' c InputOpts
aliases :: HasInputOpts c => Lens' c [String]
anon__ :: HasInputOpts c => Lens' c Bool
auto__ :: HasInputOpts c => Lens' c Bool
balancingopts :: HasInputOpts c => Lens' c BalancingOpts
defer :: HasInputOpts c => Lens' c Bool
forecast :: HasInputOpts c => Lens' c (Maybe DateSpan)
infer_costs :: HasInputOpts c => Lens' c Bool
infer_equity :: HasInputOpts c => Lens' c Bool
ioDay :: HasInputOpts c => Lens' c Day
mformat :: HasInputOpts c => Lens' c (Maybe StorageFormat)
mrules_file :: HasInputOpts c => Lens' c (Maybe FilePath)
new__ :: HasInputOpts c => Lens' c Bool
new_save :: HasInputOpts c => Lens' c Bool
oldtimeclock :: HasInputOpts c => Lens' c Bool
pivot :: HasInputOpts c => Lens' c String
posting_account_tags :: HasInputOpts c => Lens' c Bool
reportspan :: HasInputOpts c => Lens' c DateSpan
strict :: HasInputOpts c => Lens' c Bool
verbose_tags :: HasInputOpts c => Lens' c Bool
data InputOpts
InputOpts :: Maybe StorageFormat -> Maybe FilePath -> [String] -> Bool -> Bool -> Bool -> String -> Maybe DateSpan -> Bool -> Bool -> DateSpan -> Bool -> Bool -> Bool -> BalancingOpts -> Bool -> Bool -> Day -> Bool -> InputOpts
[mformat_] :: InputOpts -> Maybe StorageFormat
[mrules_file_] :: InputOpts -> Maybe FilePath
[aliases_] :: InputOpts -> [String]
[anon_] :: InputOpts -> Bool
[new_] :: InputOpts -> Bool
[new_save_] :: InputOpts -> Bool
[pivot_] :: InputOpts -> String
[forecast_] :: InputOpts -> Maybe DateSpan
[posting_account_tags_] :: InputOpts -> Bool
[verbose_tags_] :: InputOpts -> Bool
[reportspan_] :: InputOpts -> DateSpan
[auto_] :: InputOpts -> Bool
[infer_equity_] :: InputOpts -> Bool
[infer_costs_] :: InputOpts -> Bool
[balancingopts_] :: InputOpts -> BalancingOpts
[strict_] :: InputOpts -> Bool
[_defer] :: InputOpts -> Bool
[_ioDay] :: InputOpts -> Day
[_oldtimeclock] :: InputOpts -> Bool
type AccountTransactionsReport = [AccountTransactionsReportItem]
type AccountTransactionsReportItem = (Transaction, Transaction, Bool, [AccountName], MixedAmount, MixedAmount)
type BalanceReport = ([BalanceReportItem], MixedAmount)
type BalanceReportItem = (AccountName, AccountName, Int, MixedAmount)
type BudgetAverage = Average
type BudgetCell = (Maybe Change, Maybe BudgetGoal)
type BudgetGoal = Change
type BudgetReport = PeriodicReport DisplayName BudgetCell
type BudgetReportRow = PeriodicReportRow DisplayName BudgetCell
type BudgetTotal = Total
type EntriesReport = [EntriesReportItem]
type EntriesReportItem = Transaction
type MultiBalanceReport = PeriodicReport DisplayName MixedAmount
type MultiBalanceReportRow = PeriodicReportRow DisplayName MixedAmount
type PostingsReport = [PostingsReportItem]
type PostingsReportItem = (Maybe Day, Maybe Period, Maybe Text, Posting, MixedAmount)
data AccountListMode
ALFlat :: AccountListMode
ALTree :: AccountListMode
data BalanceAccumulation
PerPeriod :: BalanceAccumulation
Cumulative :: BalanceAccumulation
Historical :: BalanceAccumulation
data BalanceCalculation
CalcChange :: BalanceCalculation
CalcBudget :: BalanceCalculation
CalcValueChange :: BalanceCalculation
CalcGain :: BalanceCalculation
CalcPostingsCount :: BalanceCalculation
class HasReportOptsNoUpdate a => HasReportOpts a
reportOpts :: HasReportOpts a => ReportableLens' a ReportOpts
period :: HasReportOpts a => ReportableLens' a Period
statuses :: HasReportOpts a => ReportableLens' a [Status]
depth :: HasReportOpts a => ReportableLens' a DepthSpec
date2 :: HasReportOpts a => ReportableLens' a Bool
real :: HasReportOpts a => ReportableLens' a Bool
querystring :: HasReportOpts a => ReportableLens' a [Text]
class HasReportOptsNoUpdate c
reportOptsNoUpdate :: HasReportOptsNoUpdate c => Lens' c ReportOpts
accountlistmode :: HasReportOptsNoUpdate c => Lens' c AccountListMode
average :: HasReportOptsNoUpdate c => Lens' c Bool
balance_base_url :: HasReportOptsNoUpdate c => Lens' c (Maybe Text)
balanceaccum :: HasReportOptsNoUpdate c => Lens' c BalanceAccumulation
balancecalc :: HasReportOptsNoUpdate c => Lens' c BalanceCalculation
budgetpat :: HasReportOptsNoUpdate c => Lens' c (Maybe Text)
color__ :: HasReportOptsNoUpdate c => Lens' c Bool
conversionop :: HasReportOptsNoUpdate c => Lens' c (Maybe ConversionOp)
date2NoUpdate :: HasReportOptsNoUpdate c => Lens' c Bool
declared :: HasReportOptsNoUpdate c => Lens' c Bool
depthNoUpdate :: HasReportOptsNoUpdate c => Lens' c DepthSpec
drop__ :: HasReportOptsNoUpdate c => Lens' c Int
empty__ :: HasReportOptsNoUpdate c => Lens' c Bool
format :: HasReportOptsNoUpdate c => Lens' c StringFormat
infer_prices :: HasReportOptsNoUpdate c => Lens' c Bool
interval :: HasReportOptsNoUpdate c => Lens' c Interval
invert :: HasReportOptsNoUpdate c => Lens' c Bool
layout :: HasReportOptsNoUpdate c => Lens' c Layout
no_elide :: HasReportOptsNoUpdate c => Lens' c Bool
no_total :: HasReportOptsNoUpdate c => Lens' c Bool
normalbalance :: HasReportOptsNoUpdate c => Lens' c (Maybe NormalSign)
percent :: HasReportOptsNoUpdate c => Lens' c Bool
periodNoUpdate :: HasReportOptsNoUpdate c => Lens' c Period
pretty :: HasReportOptsNoUpdate c => Lens' c Bool
querystringNoUpdate :: HasReportOptsNoUpdate c => Lens' c [Text]
realNoUpdate :: HasReportOptsNoUpdate c => Lens' c Bool
related :: HasReportOptsNoUpdate c => Lens' c Bool
row_total :: HasReportOptsNoUpdate c => Lens' c Bool
show_costs :: HasReportOptsNoUpdate c => Lens' c Bool
sort_amount :: HasReportOptsNoUpdate c => Lens' c Bool
sortspec :: HasReportOptsNoUpdate c => Lens' c SortSpec
statusesNoUpdate :: HasReportOptsNoUpdate c => Lens' c [Status]
summary_only :: HasReportOptsNoUpdate c => Lens' c Bool
transpose__ :: HasReportOptsNoUpdate c => Lens' c Bool
txn_dates :: HasReportOptsNoUpdate c => Lens' c Bool
value :: HasReportOptsNoUpdate c => Lens' c (Maybe ValuationType)
class HasReportSpec c
reportSpec :: HasReportSpec c => Lens' c ReportSpec
rsDay :: HasReportSpec c => Lens' c Day
rsQuery :: HasReportSpec c => Lens' c Query
rsQueryOpts :: HasReportSpec c => Lens' c [QueryOpt]
rsReportOpts :: HasReportSpec c => Lens' c ReportOpts
data Layout
LayoutWide :: Maybe Int -> Layout
LayoutTall :: Layout
LayoutBare :: Layout
LayoutTidy :: Layout
data ReportOpts
ReportOpts :: Period -> Interval -> [Status] -> Maybe ConversionOp -> Maybe ValuationType -> Bool -> DepthSpec -> Bool -> Bool -> Bool -> Bool -> StringFormat -> Maybe Text -> Bool -> [Text] -> Bool -> Bool -> SortSpec -> Bool -> BalanceCalculation -> BalanceAccumulation -> Maybe Text -> AccountListMode -> Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Maybe NormalSign -> Bool -> Bool -> Layout -> ReportOpts
[period_] :: ReportOpts -> Period
[interval_] :: ReportOpts -> Interval
[statuses_] :: ReportOpts -> [Status]
[conversionop_] :: ReportOpts -> Maybe ConversionOp
[value_] :: ReportOpts -> Maybe ValuationType
[infer_prices_] :: ReportOpts -> Bool
[depth_] :: ReportOpts -> DepthSpec
[date2_] :: ReportOpts -> Bool
[empty_] :: ReportOpts -> Bool
[no_elide_] :: ReportOpts -> Bool
[real_] :: ReportOpts -> Bool
[format_] :: ReportOpts -> StringFormat
[balance_base_url_] :: ReportOpts -> Maybe Text
[pretty_] :: ReportOpts -> Bool
[querystring_] :: ReportOpts -> [Text]
[average_] :: ReportOpts -> Bool
[related_] :: ReportOpts -> Bool
[sortspec_] :: ReportOpts -> SortSpec
[txn_dates_] :: ReportOpts -> Bool
[balancecalc_] :: ReportOpts -> BalanceCalculation
[balanceaccum_] :: ReportOpts -> BalanceAccumulation
[budgetpat_] :: ReportOpts -> Maybe Text
[accountlistmode_] :: ReportOpts -> AccountListMode
[drop_] :: ReportOpts -> Int
[declared_] :: ReportOpts -> Bool
[row_total_] :: ReportOpts -> Bool
[no_total_] :: ReportOpts -> Bool
[summary_only_] :: ReportOpts -> Bool
[show_costs_] :: ReportOpts -> Bool
[sort_amount_] :: ReportOpts -> Bool
[percent_] :: ReportOpts -> Bool
[invert_] :: ReportOpts -> Bool
[normalbalance_] :: ReportOpts -> Maybe NormalSign
[color_] :: ReportOpts -> Bool
[transpose_] :: ReportOpts -> Bool
[layout_] :: ReportOpts -> Layout
data ReportSpec
ReportSpec :: ReportOpts -> Day -> Query -> [QueryOpt] -> ReportSpec
[_rsReportOpts] :: ReportSpec -> ReportOpts
[_rsDay] :: ReportSpec -> Day
[_rsQuery] :: ReportSpec -> Query
[_rsQueryOpts] :: ReportSpec -> [QueryOpt]
data SortField
AbsAmount' :: Bool -> SortField
Account' :: Bool -> SortField
Amount' :: Bool -> SortField
Date' :: Bool -> SortField
Description' :: Bool -> SortField
type SortSpec = [SortField]
type Average = MixedAmount
type Balance = MixedAmount
data CBCSubreportSpec a
CBCSubreportSpec :: Text -> Query -> (ReportOpts -> ReportOpts) -> (PeriodicReport DisplayName MixedAmount -> PeriodicReport a MixedAmount) -> Bool -> CBCSubreportSpec a
[cbcsubreporttitle] :: CBCSubreportSpec a -> Text
[cbcsubreportquery] :: CBCSubreportSpec a -> Query
[cbcsubreportoptions] :: CBCSubreportSpec a -> ReportOpts -> ReportOpts
[cbcsubreporttransform] :: CBCSubreportSpec a -> PeriodicReport DisplayName MixedAmount -> PeriodicReport a MixedAmount
[cbcsubreportincreasestotal] :: CBCSubreportSpec a -> Bool
type Change = MixedAmount
data CompoundPeriodicReport a b
CompoundPeriodicReport :: Text -> [DateSpan] -> [(Text, PeriodicReport a b, Bool)] -> PeriodicReportRow () b -> CompoundPeriodicReport a b
[cbrTitle] :: CompoundPeriodicReport a b -> Text
[cbrDates] :: CompoundPeriodicReport a b -> [DateSpan]
[cbrSubreports] :: CompoundPeriodicReport a b -> [(Text, PeriodicReport a b, Bool)]
[cbrTotals] :: CompoundPeriodicReport a b -> PeriodicReportRow () b
data DisplayName
DisplayName :: AccountName -> AccountName -> NumberOfIndents -> DisplayName
[displayFull] :: DisplayName -> AccountName
[displayName] :: DisplayName -> AccountName
[displayIndent] :: DisplayName -> NumberOfIndents
type Percentage = Decimal
data PeriodicReport a b
PeriodicReport :: [DateSpan] -> [PeriodicReportRow a b] -> PeriodicReportRow () b -> PeriodicReport a b
[prDates] :: PeriodicReport a b -> [DateSpan]
[prRows] :: PeriodicReport a b -> [PeriodicReportRow a b]
[prTotals] :: PeriodicReport a b -> PeriodicReportRow () b
data PeriodicReportRow a b
PeriodicReportRow :: a -> [b] -> b -> b -> PeriodicReportRow a b
[prrName] :: PeriodicReportRow a b -> a
[prrAmounts] :: PeriodicReportRow a b -> [b]
[prrTotal] :: PeriodicReportRow a b -> b
[prrAverage] :: PeriodicReportRow a b -> b
type Total = MixedAmount
data GhcDebugMode
GDNotSupported :: GhcDebugMode
GDDisabled :: GhcDebugMode
GDNoPause :: GhcDebugMode
GDPauseAtStart :: GhcDebugMode
GDPauseAtEnd :: GhcDebugMode
data YNA
Yes :: YNA
No :: YNA
Auto :: YNA
type FinalParseError = FinalParseError' HledgerParseErrorData
data FinalParseError' e
type FinalParseErrorBundle = FinalParseErrorBundle' HledgerParseErrorData
data FinalParseErrorBundle' e
data HledgerParseErrorData
type HledgerParseErrors = ParseErrorBundle Text HledgerParseErrorData
type SimpleStringParser a = Parsec HledgerParseErrorData String a
type SimpleTextParser = Parsec HledgerParseErrorData Text
data SourceExcerpt
type TextParser (m :: Type -> Type) a = ParsecT HledgerParseErrorData Text m a
type RegexError = String
data Regexp
type Replacement = String
data WideBuilder
WideBuilder :: !Builder -> !Int -> WideBuilder
[wbBuilder] :: WideBuilder -> !Builder
[wbWidth] :: WideBuilder -> !Int
data SourcePos
SourcePos :: FilePath -> !Pos -> !Pos -> SourcePos
[sourceName] :: SourcePos -> FilePath
[sourceLine] :: SourcePos -> !Pos
[sourceColumn] :: SourcePos -> !Pos
data DependencyType
AllSucceed :: DependencyType
AllFinish :: DependencyType
type TestName = String
data TestTree
data Timeout
Timeout :: Integer -> String -> Timeout
NoTimeout :: Timeout
class Assertable t
assert :: Assertable t => t -> Assertion
type Assertion = IO ()
class AssertionPredicable t
assertionPredicate :: AssertionPredicable t => t -> IO Bool
type AssertionPredicate = IO Bool
data HUnitFailure
HUnitFailure :: Maybe SrcLoc -> String -> HUnitFailure
type Year = Integer
flagHelpFormat :: (HelpFormat -> TextFormat -> a -> a) -> Flag a
flagHelpSimple :: (a -> a) -> Flag a
flagNumericVersion :: (a -> a) -> Flag a
flagVersion :: (a -> a) -> Flag a
flagsVerbosity :: (Verbosity -> a -> a) -> [Flag a]
processArgs :: Mode a -> IO a
processValue :: Mode a -> [String] -> a
processValueIO :: Mode a -> [String] -> IO a
complete :: Mode a -> [String] -> (Int, Int) -> [Complete]
expandArgsAt :: [String] -> IO [String]
helpText :: [String] -> HelpFormat -> Mode a -> [Text]
process :: Mode a -> [String] -> Either String a
joinArgs :: [String] -> String
splitArgs :: String -> [String]
checkMode :: Mode a -> Maybe String
flagArg :: Update a -> FlagHelp -> Arg a
flagBool :: [Name] -> (Bool -> a -> a) -> Help -> Flag a
flagNone :: [Name] -> (a -> a) -> Help -> Flag a
flagOpt :: String -> [Name] -> Update a -> FlagHelp -> Help -> Flag a
flagReq :: [Name] -> Update a -> FlagHelp -> Help -> Flag a
fromFlagOpt :: FlagInfo -> String
fromGroup :: Group a -> [a]
mode :: Name -> a -> Help -> Arg a -> [Flag a] -> Mode a
modeEmpty :: a -> Mode a
modeFlags :: Mode a -> [Flag a]
modeModes :: Mode a -> [Mode a]
modes :: String -> a -> Help -> [Mode a] -> Mode a
parseBool :: String -> Maybe Bool
remap2 :: Remap m => (a -> b) -> (b -> a) -> m a -> m b
remapUpdate :: (a -> b) -> (b -> (a, a -> b)) -> Update a -> Update b
toGroup :: [a] -> Group a
data Complete
CompleteValue :: String -> Complete
CompleteFile :: String -> FilePath -> Complete
CompleteDir :: String -> FilePath -> Complete
data HelpFormat
HelpFormatDefault :: HelpFormat
HelpFormatOne :: HelpFormat
HelpFormatAll :: HelpFormat
HelpFormatBash :: HelpFormat
HelpFormatZsh :: HelpFormat
data Arg a
Arg :: Update a -> FlagHelp -> Bool -> Arg a
[argValue] :: Arg a -> Update a
[argType] :: Arg a -> FlagHelp
[argRequire] :: Arg a -> Bool
data Flag a
Flag :: [Name] -> FlagInfo -> Update a -> FlagHelp -> Help -> Flag a
[flagNames] :: Flag a -> [Name]
[flagInfo] :: Flag a -> FlagInfo
[flagValue] :: Flag a -> Update a
[flagType] :: Flag a -> FlagHelp
[flagHelp] :: Flag a -> Help
type FlagHelp = String
data FlagInfo
FlagReq :: FlagInfo
FlagOpt :: String -> FlagInfo
FlagOptRare :: String -> FlagInfo
FlagNone :: FlagInfo
data Group a
Group :: [a] -> [a] -> [(Help, [a])] -> Group a
[groupUnnamed] :: Group a -> [a]
[groupHidden] :: Group a -> [a]
[groupNamed] :: Group a -> [(Help, [a])]
type Help = String
data Mode a
Mode :: Group (Mode a) -> [Name] -> a -> (a -> Either String a) -> (a -> Maybe [String]) -> Bool -> Help -> [String] -> ([Arg a], Maybe (Arg a)) -> Group (Flag a) -> Mode a
[modeGroupModes] :: Mode a -> Group (Mode a)
[modeNames] :: Mode a -> [Name]
[modeValue] :: Mode a -> a
[modeCheck] :: Mode a -> a -> Either String a
[modeReform] :: Mode a -> a -> Maybe [String]
[modeExpandAt] :: Mode a -> Bool
[modeHelp] :: Mode a -> Help
[modeHelpSuffix] :: Mode a -> [String]
[modeArgs] :: Mode a -> ([Arg a], Maybe (Arg a))
[modeGroupFlags] :: Mode a -> Group (Flag a)
class Remap (m :: Type -> Type)
remap :: Remap m => (a -> b) -> (b -> (a, a -> b)) -> m a -> m b
type Update a = String -> a -> Either String a


-- | A convenient module to import in hledger scripts, aiming to provide
--   the most useful imports and reduce boilerplate. |
module Hledger.Cli.Script
optional :: Alternative f => f a -> f (Maybe a)
forkFinally :: IO a -> (Either SomeException a -> IO ()) -> IO ThreadId
threadWaitRead :: Fd -> IO ()
threadWaitReadSTM :: Fd -> IO (STM (), IO ())
threadWaitWrite :: Fd -> IO ()
threadWaitWriteSTM :: Fd -> IO (STM (), IO ())
dupChan :: Chan a -> IO (Chan a)
getChanContents :: Chan a -> IO [a]
newChan :: IO (Chan a)
readChan :: Chan a -> IO a
writeChan :: Chan a -> a -> IO ()
writeList2Chan :: Chan a -> [a] -> IO ()
newQSem :: Int -> IO QSem
signalQSem :: QSem -> IO ()
waitQSem :: QSem -> IO ()
newQSemN :: Int -> IO QSemN
signalQSemN :: QSemN -> Int -> IO ()
waitQSemN :: QSemN -> Int -> IO ()
digitToInt :: Char -> Int
isLetter :: Char -> Bool
isMark :: Char -> Bool
isNumber :: Char -> Bool
isSeparator :: Char -> Bool
compareLength :: [a] -> Int -> Ordering
inits1 :: [a] -> [NonEmpty a]
tails1 :: [a] -> [NonEmpty a]
errorBadArgument :: a
errorBadFormat :: Char -> a
errorMissingArgument :: a
errorShortFormat :: a
formatChar :: Char -> FieldFormatter
formatInt :: (Integral a, Bounded a) => a -> FieldFormatter
formatInteger :: Integer -> FieldFormatter
formatRealFloat :: RealFloat a => a -> FieldFormatter
hPrintf :: HPrintfType r => Handle -> String -> r
perror :: String -> a
printf :: PrintfType r => String -> r
vFmt :: Char -> FieldFormat -> FieldFormat
flagHelpFormat :: (HelpFormat -> TextFormat -> a -> a) -> Flag a
flagHelpSimple :: (a -> a) -> Flag a
flagNumericVersion :: (a -> a) -> Flag a
flagVersion :: (a -> a) -> Flag a
flagsVerbosity :: (Verbosity -> a -> a) -> [Flag a]
processArgs :: Mode a -> IO a
processValue :: Mode a -> [String] -> a
processValueIO :: Mode a -> [String] -> IO a
complete :: Mode a -> [String] -> (Int, Int) -> [Complete]
expandArgsAt :: [String] -> IO [String]
helpText :: [String] -> HelpFormat -> Mode a -> [Text]
process :: Mode a -> [String] -> Either String a
joinArgs :: [String] -> String
splitArgs :: String -> [String]
checkMode :: Mode a -> Maybe String
flagArg :: Update a -> FlagHelp -> Arg a
flagBool :: [Name] -> (Bool -> a -> a) -> Help -> Flag a
flagNone :: [Name] -> (a -> a) -> Help -> Flag a
flagOpt :: String -> [Name] -> Update a -> FlagHelp -> Help -> Flag a
flagReq :: [Name] -> Update a -> FlagHelp -> Help -> Flag a
fromFlagOpt :: FlagInfo -> String
fromGroup :: Group a -> [a]
mode :: Name -> a -> Help -> Arg a -> [Flag a] -> Mode a
modeEmpty :: a -> Mode a
modeFlags :: Mode a -> [Flag a]
modeModes :: Mode a -> [Mode a]
modes :: String -> a -> Help -> [Mode a] -> Mode a
parseBool :: String -> Maybe Bool
remap2 :: Remap m => (a -> b) -> (b -> a) -> m a -> m b
remapUpdate :: (a -> b) -> (b -> (a, a -> b)) -> Update a -> Update b
toGroup :: [a] -> Group a
canonicalizePath :: FilePath -> IO FilePath
copyFile :: FilePath -> FilePath -> IO ()
copyFileWithMetadata :: FilePath -> FilePath -> IO ()
copyPermissions :: FilePath -> FilePath -> IO ()
createDirectory :: FilePath -> IO ()
createDirectoryIfMissing :: Bool -> FilePath -> IO ()
createDirectoryLink :: FilePath -> FilePath -> IO ()
createFileLink :: FilePath -> FilePath -> IO ()
doesDirectoryExist :: FilePath -> IO Bool
doesFileExist :: FilePath -> IO Bool
doesPathExist :: FilePath -> IO Bool
emptyPermissions :: Permissions
exeExtension :: String
findExecutable :: String -> IO (Maybe FilePath)
findExecutables :: String -> IO [FilePath]
findExecutablesInDirectories :: [FilePath] -> String -> IO [FilePath]
findFile :: [FilePath] -> String -> IO (Maybe FilePath)
findFileWith :: (FilePath -> IO Bool) -> [FilePath] -> String -> IO (Maybe FilePath)
findFiles :: [FilePath] -> String -> IO [FilePath]
findFilesWith :: (FilePath -> IO Bool) -> [FilePath] -> String -> IO [FilePath]
getAccessTime :: FilePath -> IO UTCTime
getAppUserDataDirectory :: FilePath -> IO FilePath
getCurrentDirectory :: IO FilePath
getDirectoryContents :: FilePath -> IO [FilePath]
getFileSize :: FilePath -> IO Integer
getHomeDirectory :: IO FilePath
getModificationTime :: FilePath -> IO UTCTime
getPermissions :: FilePath -> IO Permissions
getSymbolicLinkTarget :: FilePath -> IO FilePath
getTemporaryDirectory :: IO FilePath
getUserDocumentsDirectory :: IO FilePath
getXdgDirectory :: XdgDirectory -> FilePath -> IO FilePath
getXdgDirectoryList :: XdgDirectoryList -> IO [FilePath]
isSymbolicLink :: FilePath -> IO Bool
listDirectory :: FilePath -> IO [FilePath]
makeAbsolute :: FilePath -> IO FilePath
makeRelativeToCurrentDirectory :: FilePath -> IO FilePath
pathIsSymbolicLink :: FilePath -> IO Bool
removeDirectory :: FilePath -> IO ()
removeDirectoryLink :: FilePath -> IO ()
removeDirectoryRecursive :: FilePath -> IO ()
removeFile :: FilePath -> IO ()
removePathForcibly :: FilePath -> IO ()
renameDirectory :: FilePath -> FilePath -> IO ()
renameFile :: FilePath -> FilePath -> IO ()
renamePath :: FilePath -> FilePath -> IO ()
setAccessTime :: FilePath -> UTCTime -> IO ()
setCurrentDirectory :: FilePath -> IO ()
setModificationTime :: FilePath -> UTCTime -> IO ()
setOwnerExecutable :: Bool -> Permissions -> Permissions
setOwnerReadable :: Bool -> Permissions -> Permissions
setOwnerSearchable :: Bool -> Permissions -> Permissions
setOwnerWritable :: Bool -> Permissions -> Permissions
setPermissions :: FilePath -> Permissions -> IO ()
withCurrentDirectory :: FilePath -> IO a -> IO a
charWidth :: Char -> Int
(-<.>) :: FilePath -> String -> FilePath
(<.>) :: FilePath -> String -> FilePath
(</>) :: FilePath -> FilePath -> FilePath
addExtension :: FilePath -> String -> FilePath
addTrailingPathSeparator :: FilePath -> FilePath
combine :: FilePath -> FilePath -> FilePath
dropDrive :: FilePath -> FilePath
dropExtension :: FilePath -> FilePath
dropExtensions :: FilePath -> FilePath
dropFileName :: FilePath -> FilePath
dropTrailingPathSeparator :: FilePath -> FilePath
equalFilePath :: FilePath -> FilePath -> Bool
extSeparator :: Char
getSearchPath :: IO [FilePath]
hasDrive :: FilePath -> Bool
hasExtension :: FilePath -> Bool
hasTrailingPathSeparator :: FilePath -> Bool
isAbsolute :: FilePath -> Bool
isDrive :: FilePath -> Bool
isExtSeparator :: Char -> Bool
isExtensionOf :: String -> FilePath -> Bool
isPathSeparator :: Char -> Bool
isRelative :: FilePath -> Bool
isSearchPathSeparator :: Char -> Bool
isValid :: FilePath -> Bool
joinDrive :: FilePath -> FilePath -> FilePath
joinPath :: [FilePath] -> FilePath
makeRelative :: FilePath -> FilePath -> FilePath
makeValid :: FilePath -> FilePath
normalise :: FilePath -> FilePath
pathSeparator :: Char
pathSeparators :: [Char]
replaceBaseName :: FilePath -> String -> FilePath
replaceDirectory :: FilePath -> String -> FilePath
replaceExtension :: FilePath -> String -> FilePath
replaceExtensions :: FilePath -> String -> FilePath
replaceFileName :: FilePath -> String -> FilePath
searchPathSeparator :: Char
splitDirectories :: FilePath -> [FilePath]
splitDrive :: FilePath -> (FilePath, FilePath)
splitExtension :: FilePath -> (String, String)
splitExtensions :: FilePath -> (FilePath, String)
splitFileName :: FilePath -> (String, String)
splitPath :: FilePath -> [FilePath]
splitSearchPath :: String -> [FilePath]
stripExtension :: String -> FilePath -> Maybe FilePath
takeBaseName :: FilePath -> String
takeDirectory :: FilePath -> FilePath
takeDrive :: FilePath -> FilePath
takeExtension :: FilePath -> String
takeExtensions :: FilePath -> String
takeFileName :: FilePath -> FilePath
(++) :: [a] -> [a] -> [a]
(<**>) :: Applicative f => f a -> f (a -> b) -> f b
(=<<) :: Monad m => (a -> m b) -> m a -> m b
ap :: Monad m => m (a -> b) -> m a -> m b
join :: Monad m => m (m a) -> m a
liftA :: Applicative f => (a -> b) -> f a -> f b
liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
liftM :: Monad m => (a1 -> r) -> m a1 -> m r
liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
liftM3 :: Monad m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r
map :: (a -> b) -> [a] -> [b]
ord :: Char -> Int
when :: Applicative f => Bool -> f () -> f ()
chr :: Int -> Char
forkOS :: IO () -> IO ThreadId
forkOSWithUnmask :: ((forall a. () => IO a -> IO a) -> IO ()) -> IO ThreadId
isCurrentThreadBound :: IO Bool
rtsSupportsBoundThreads :: Bool
runInBoundThread :: IO a -> IO a
runInUnboundThread :: IO a -> IO a
threadDelay :: Int -> IO ()
forkIO :: IO () -> IO ThreadId
forkIOWithUnmask :: ((forall a. () => IO a -> IO a) -> IO ()) -> IO ThreadId
forkOn :: Int -> IO () -> IO ThreadId
forkOnWithUnmask :: Int -> ((forall a. () => IO a -> IO a) -> IO ()) -> IO ThreadId
getNumCapabilities :: IO Int
killThread :: ThreadId -> IO ()
mkWeakThreadId :: ThreadId -> IO (Weak ThreadId)
myThreadId :: IO ThreadId
setNumCapabilities :: Int -> IO ()
threadCapability :: ThreadId -> IO (Int, Bool)
throwTo :: Exception e => ThreadId -> e -> IO ()
yield :: IO ()
addMVarFinalizer :: MVar a -> IO () -> IO ()
mkWeakMVar :: MVar a -> IO () -> IO (Weak (MVar a))
modifyMVar :: MVar a -> (a -> IO (a, b)) -> IO b
modifyMVarMasked :: MVar a -> (a -> IO (a, b)) -> IO b
modifyMVarMasked_ :: MVar a -> (a -> IO a) -> IO ()
modifyMVar_ :: MVar a -> (a -> IO a) -> IO ()
swapMVar :: MVar a -> a -> IO a
withMVar :: MVar a -> (a -> IO b) -> IO b
withMVarMasked :: MVar a -> (a -> IO b) -> IO b
(<$!>) :: Monad m => (a -> b) -> m a -> m b
(<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
(>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
foldM_ :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m ()
forever :: Applicative f => f a -> f b
guard :: Alternative f => Bool -> f ()
mapAndUnzipM :: Applicative m => (a -> m (b, c)) -> [a] -> m ([b], [c])
mfilter :: MonadPlus m => (a -> Bool) -> m a -> m a
replicateM :: Applicative m => Int -> m a -> m [a]
replicateM_ :: Applicative m => Int -> m a -> m ()
unless :: Applicative f => Bool -> f () -> f ()
zipWithM :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m [c]
zipWithM_ :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m ()
either :: (a -> c) -> (b -> c) -> Either a b -> c
fromLeft :: a -> Either a b -> a
fromRight :: b -> Either a b -> b
isLeft :: Either a b -> Bool
isRight :: Either a b -> Bool
lefts :: [Either a b] -> [a]
partitionEithers :: [Either a b] -> ([a], [b])
rights :: [Either a b] -> [b]
all :: Foldable t => (a -> Bool) -> t a -> Bool
and :: Foldable t => t Bool -> Bool
any :: Foldable t => (a -> Bool) -> t a -> Bool
asum :: (Foldable t, Alternative f) => t (f a) -> f a
concat :: Foldable t => t [a] -> [a]
concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
find :: Foldable t => (a -> Bool) -> t a -> Maybe a
forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
msum :: (Foldable t, MonadPlus m) => t (m a) -> m a
notElem :: (Foldable t, Eq a) => a -> t a -> Bool
or :: Foldable t => t Bool -> Bool
sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()
($>) :: Functor f => f a -> b -> f b
(<$>) :: Functor f => (a -> b) -> f a -> f b
(<&>) :: Functor f => f a -> (a -> b) -> f b
void :: Functor f => f a -> f ()
isSubsequenceOf :: Eq a => [a] -> [a] -> Bool
catMaybes :: [Maybe a] -> [a]
fromJust :: HasCallStack => Maybe a -> a
fromMaybe :: a -> Maybe a -> a
isJust :: Maybe a -> Bool
isNothing :: Maybe a -> Bool
listToMaybe :: [a] -> Maybe a
mapMaybe :: (a -> Maybe b) -> [a] -> [b]
maybe :: b -> (a -> b) -> Maybe a -> b
maybeToList :: Maybe a -> [a]
(\\) :: Eq a => [a] -> [a] -> [a]
delete :: Eq a => a -> [a] -> [a]
deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
dropWhileEnd :: (a -> Bool) -> [a] -> [a]
elemIndex :: Eq a => a -> [a] -> Maybe Int
elemIndices :: Eq a => a -> [a] -> [Int]
findIndex :: (a -> Bool) -> [a] -> Maybe Int
findIndices :: (a -> Bool) -> [a] -> [Int]
genericDrop :: Integral i => i -> [a] -> [a]
genericIndex :: Integral i => [a] -> i -> a
genericLength :: Num i => [a] -> i
genericReplicate :: Integral i => i -> a -> [a]
genericSplitAt :: Integral i => i -> [a] -> ([a], [a])
genericTake :: Integral i => i -> [a] -> [a]
group :: Eq a => [a] -> [[a]]
groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
inits :: [a] -> [[a]]
insert :: Ord a => a -> [a] -> [a]
insertBy :: (a -> a -> Ordering) -> a -> [a] -> [a]
intercalate :: [a] -> [[a]] -> [a]
intersect :: Eq a => [a] -> [a] -> [a]
intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
intersperse :: a -> [a] -> [a]
isInfixOf :: Eq a => [a] -> [a] -> Bool
isPrefixOf :: Eq a => [a] -> [a] -> Bool
isSuffixOf :: Eq a => [a] -> [a] -> Bool
lines :: String -> [String]
nub :: Eq a => [a] -> [a]
nubBy :: (a -> a -> Bool) -> [a] -> [a]
partition :: (a -> Bool) -> [a] -> ([a], [a])
permutations :: [a] -> [[a]]
singleton :: a -> [a]
sort :: Ord a => [a] -> [a]
sortBy :: (a -> a -> Ordering) -> [a] -> [a]
sortOn :: Ord b => (a -> b) -> [a] -> [a]
stripPrefix :: Eq a => [a] -> [a] -> Maybe [a]
subsequences :: [a] -> [[a]]
tails :: [a] -> [[a]]
transpose :: [[a]] -> [[a]]
unfoldr :: (b -> Maybe (a, b)) -> b -> [a]
union :: Eq a => [a] -> [a] -> [a]
unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
unlines :: [String] -> String
unwords :: [String] -> String
unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
words :: String -> [String]
zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
clamp :: Ord a => (a, a) -> a -> a
comparing :: Ord a => (b -> a) -> b -> b -> Ordering
forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
mapAccumL :: Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b)
mapAccumR :: Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b)
trace :: String -> a -> a
traceIO :: String -> IO ()
traceShowId :: Show a => a -> a
char8 :: TextEncoding
latin1 :: TextEncoding
mkTextEncoding :: String -> IO TextEncoding
utf16 :: TextEncoding
utf16be :: TextEncoding
utf16le :: TextEncoding
utf32 :: TextEncoding
utf32be :: TextEncoding
utf32le :: TextEncoding
utf8 :: TextEncoding
utf8_bom :: TextEncoding
ioError :: HasCallStack => IOError -> IO a
userError :: String -> IOError
hClose :: Handle -> IO ()
hFileSize :: Handle -> IO Integer
hFlush :: Handle -> IO ()
hGetBuffering :: Handle -> IO BufferMode
hGetEcho :: Handle -> IO Bool
hGetEncoding :: Handle -> IO (Maybe TextEncoding)
hGetPosn :: Handle -> IO HandlePosn
hIsClosed :: Handle -> IO Bool
hIsEOF :: Handle -> IO Bool
hIsOpen :: Handle -> IO Bool
hIsReadable :: Handle -> IO Bool
hIsSeekable :: Handle -> IO Bool
hIsTerminalDevice :: Handle -> IO Bool
hIsWritable :: Handle -> IO Bool
hLookAhead :: Handle -> IO Char
hSeek :: Handle -> SeekMode -> Integer -> IO ()
hSetBinaryMode :: Handle -> Bool -> IO ()
hSetBuffering :: Handle -> BufferMode -> IO ()
hSetEcho :: Handle -> Bool -> IO ()
hSetEncoding :: Handle -> TextEncoding -> IO ()
hSetFileSize :: Handle -> Integer -> IO ()
hSetNewlineMode :: Handle -> NewlineMode -> IO ()
hSetPosn :: HandlePosn -> IO ()
hShow :: Handle -> IO String
hTell :: Handle -> IO Integer
isEOF :: IO Bool
hGetBuf :: Handle -> Ptr a -> Int -> IO Int
hGetBufNonBlocking :: Handle -> Ptr a -> Int -> IO Int
hGetBufSome :: Handle -> Ptr a -> Int -> IO Int
hGetChar :: Handle -> IO Char
hGetContents :: Handle -> IO String
hGetContents' :: Handle -> IO String
hGetLine :: Handle -> IO String
hPutBuf :: Handle -> Ptr a -> Int -> IO ()
hPutBufNonBlocking :: Handle -> Ptr a -> Int -> IO Int
hPutChar :: Handle -> Char -> IO ()
hPutStr :: Handle -> String -> IO ()
hPutStrLn :: Handle -> String -> IO ()
hWaitForInput :: Handle -> Int -> IO Bool
nativeNewline :: Newline
nativeNewlineMode :: NewlineMode
noNewlineTranslation :: NewlineMode
universalNewlineMode :: NewlineMode
openBinaryFile :: FilePath -> IOMode -> IO Handle
openFile :: FilePath -> IOMode -> IO Handle
stderr :: Handle
stdin :: Handle
stdout :: Handle
withBinaryFile :: FilePath -> IOMode -> (Handle -> IO r) -> IO r
withFile :: FilePath -> IOMode -> (Handle -> IO r) -> IO r
(!!) :: HasCallStack => [a] -> Int -> a
(!?) :: [a] -> Int -> Maybe a
break :: (a -> Bool) -> [a] -> ([a], [a])
cycle :: HasCallStack => [a] -> [a]
drop :: Int -> [a] -> [a]
dropWhile :: (a -> Bool) -> [a] -> [a]
filter :: (a -> Bool) -> [a] -> [a]
foldl1' :: HasCallStack => (a -> a -> a) -> [a] -> a
head :: HasCallStack => [a] -> a
init :: HasCallStack => [a] -> [a]
iterate :: (a -> a) -> a -> [a]
iterate' :: (a -> a) -> a -> [a]
last :: HasCallStack => [a] -> a
lookup :: Eq a => a -> [(a, b)] -> Maybe b
repeat :: a -> [a]
replicate :: Int -> a -> [a]
reverse :: [a] -> [a]
scanl :: (b -> a -> b) -> b -> [a] -> [b]
scanl' :: (b -> a -> b) -> b -> [a] -> [b]
scanl1 :: (a -> a -> a) -> [a] -> [a]
scanr :: (a -> b -> b) -> b -> [a] -> [b]
scanr1 :: (a -> a -> a) -> [a] -> [a]
span :: (a -> Bool) -> [a] -> ([a], [a])
splitAt :: Int -> [a] -> ([a], [a])
tail :: HasCallStack => [a] -> [a]
take :: Int -> [a] -> [a]
takeWhile :: (a -> Bool) -> [a] -> [a]
uncons :: [a] -> Maybe (a, [a])
unsnoc :: [a] -> Maybe ([a], a)
unzip :: [(a, b)] -> ([a], [b])
unzip3 :: [(a, b, c)] -> ([a], [b], [c])
zip :: [a] -> [b] -> [(a, b)]
zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
isEmptyMVar :: MVar a -> IO Bool
newEmptyMVar :: IO (MVar a)
newMVar :: a -> IO (MVar a)
putMVar :: MVar a -> a -> IO ()
readMVar :: MVar a -> IO a
takeMVar :: MVar a -> IO a
tryPutMVar :: MVar a -> a -> IO Bool
tryReadMVar :: MVar a -> IO (Maybe a)
tryTakeMVar :: MVar a -> IO (Maybe a)
lexLitChar :: ReadS String
readLitChar :: ReadS Char
intToDigit :: Int -> Char
showLitChar :: Char -> ShowS
getArgs :: IO [String]
getEnv :: String -> IO String
getEnvironment :: IO [(String, String)]
getProgName :: IO String
lookupEnv :: String -> IO (Maybe String)
setEnv :: String -> String -> IO ()
unsetEnv :: String -> IO ()
withArgs :: [String] -> IO a -> IO a
withProgName :: String -> IO a -> IO a
executablePath :: Maybe (IO (Maybe FilePath))
getExecutablePath :: IO FilePath
die :: String -> IO a
exitFailure :: IO a
exitSuccess :: IO a
exitWith :: ExitCode -> IO a
appendFile :: FilePath -> String -> IO ()
fixIO :: (a -> IO a) -> IO a
getChar :: IO Char
getContents :: IO String
getContents' :: IO String
getLine :: IO String
hPrint :: Show a => Handle -> a -> IO ()
hReady :: Handle -> IO Bool
interact :: (String -> String) -> IO ()
localeEncoding :: TextEncoding
openBinaryTempFile :: FilePath -> String -> IO (FilePath, Handle)
openBinaryTempFileWithDefaultPermissions :: FilePath -> String -> IO (FilePath, Handle)
openTempFile :: FilePath -> String -> IO (FilePath, Handle)
openTempFileWithDefaultPermissions :: FilePath -> String -> IO (FilePath, Handle)
print :: Show a => a -> IO ()
putChar :: Char -> IO ()
putStr :: String -> IO ()
putStrLn :: String -> IO ()
readFile :: FilePath -> IO String
readFile' :: FilePath -> IO String
readIO :: Read a => String -> IO a
readLn :: Read a => IO a
writeFile :: FilePath -> String -> IO ()
alreadyExistsErrorType :: IOErrorType
alreadyInUseErrorType :: IOErrorType
annotateIOError :: IOError -> String -> Maybe Handle -> Maybe FilePath -> IOError
catchIOError :: IO a -> (IOError -> IO a) -> IO a
doesNotExistErrorType :: IOErrorType
eofErrorType :: IOErrorType
fullErrorType :: IOErrorType
illegalOperationErrorType :: IOErrorType
ioeGetErrorString :: IOError -> String
ioeGetErrorType :: IOError -> IOErrorType
ioeGetFileName :: IOError -> Maybe FilePath
ioeGetHandle :: IOError -> Maybe Handle
ioeGetLocation :: IOError -> String
ioeSetErrorString :: IOError -> String -> IOError
ioeSetErrorType :: IOError -> IOErrorType -> IOError
ioeSetFileName :: IOError -> FilePath -> IOError
ioeSetHandle :: IOError -> Handle -> IOError
ioeSetLocation :: IOError -> String -> IOError
isAlreadyExistsError :: IOError -> Bool
isAlreadyExistsErrorType :: IOErrorType -> Bool
isAlreadyInUseError :: IOError -> Bool
isAlreadyInUseErrorType :: IOErrorType -> Bool
isDoesNotExistError :: IOError -> Bool
isDoesNotExistErrorType :: IOErrorType -> Bool
isEOFError :: IOError -> Bool
isEOFErrorType :: IOErrorType -> Bool
isFullError :: IOError -> Bool
isFullErrorType :: IOErrorType -> Bool
isIllegalOperation :: IOError -> Bool
isIllegalOperationErrorType :: IOErrorType -> Bool
isPermissionError :: IOError -> Bool
isPermissionErrorType :: IOErrorType -> Bool
isResourceVanishedError :: IOError -> Bool
isResourceVanishedErrorType :: IOErrorType -> Bool
isUserError :: IOError -> Bool
isUserErrorType :: IOErrorType -> Bool
mkIOError :: IOErrorType -> String -> Maybe Handle -> Maybe FilePath -> IOError
modifyIOError :: (IOError -> IOError) -> IO a -> IO a
permissionErrorType :: IOErrorType
resourceVanishedErrorType :: IOErrorType
tryIOError :: IO a -> IO (Either IOError a)
userErrorType :: IOErrorType
generalCategory :: Char -> GeneralCategory
isAlpha :: Char -> Bool
isAlphaNum :: Char -> Bool
isAscii :: Char -> Bool
isAsciiLower :: Char -> Bool
isAsciiUpper :: Char -> Bool
isControl :: Char -> Bool
isDigit :: Char -> Bool
isHexDigit :: Char -> Bool
isLatin1 :: Char -> Bool
isLower :: Char -> Bool
isLowerCase :: Char -> Bool
isOctDigit :: Char -> Bool
isPrint :: Char -> Bool
isPunctuation :: Char -> Bool
isSpace :: Char -> Bool
isSymbol :: Char -> Bool
isUpper :: Char -> Bool
isUpperCase :: Char -> Bool
toLower :: Char -> Char
toTitle :: Char -> Char
toUpper :: Char -> Char

-- | A helper for addons/scripts: this parses hledger CliOpts from these
--   command line arguments and add-on command names, roughly how hledger
--   main does. If option parsing/validating fails, it exits the program
--   with usageError. Unlike main, this does not read extra args from a
--   config file or search for addons; to do those things, mimic the code
--   in main for now.
argsToCliOpts :: [String] -> [String] -> IO CliOpts
tests_Hledger :: TestTree
tests_Data :: TestTree
accountFromBalances :: AccountName -> PeriodData a -> Account a
accountFromPostings :: (Posting -> Maybe Day) -> [Posting] -> Account BalanceData
accountSetDeclarationInfo :: Journal -> Account a -> Account a
accountTree :: Monoid a => AccountName -> [AccountName] -> Account a
accountTreeFromBalanceAndNames :: AccountName -> PeriodData a -> [AccountName] -> Account a
accountsFromPostings :: (Posting -> Maybe Day) -> [Posting] -> [Account BalanceData]
accountsLevels :: Account a -> [[Account a]]
anyAccounts :: (Account a -> Bool) -> Account a -> Bool
clipAccounts :: Int -> Account a -> Account a
clipAccountsAndAggregate :: Monoid a => DepthSpec -> [Account a] -> [Account a]
filterAccounts :: (Account a -> Bool) -> Account a -> [Account a]
flattenAccounts :: Account a -> [Account a]
lookupAccount :: AccountName -> [Account a] -> Maybe (Account a)
mapAccounts :: (Account a -> Account a) -> Account a -> Account a
mapPeriodData :: (PeriodData a -> PeriodData a) -> Account a -> Account a
mergeAccounts :: Account a -> Account b -> Account (These a b)
nullacct :: Account BalanceData
parentAccounts :: Account a -> [Account a]
printAccounts :: Show a => Account a -> IO ()
pruneAccounts :: (Account a -> Bool) -> Account a -> Maybe (Account a)
showAccounts :: Show a => Account a -> String
showAccountsBoringFlag :: Account a -> String
sortAccountNamesByDeclaration :: Journal -> Bool -> [AccountName] -> [AccountName]
sortAccountTreeByDeclaration :: Account a -> Account a
sortAccountTreeOn :: Ord b => (Account a -> b) -> Account a -> Account a
sumAccounts :: Account BalanceData -> Account BalanceData
tests_Account :: TestTree
accountLeafName :: AccountName -> Text
accountNameApplyAliases :: [AccountAlias] -> AccountName -> Either RegexError AccountName
accountNameApplyAliasesMemo :: [AccountAlias] -> AccountName -> Either RegexError AccountName
accountNameComponents :: AccountName -> [Text]
accountNameDrop :: Int -> AccountName -> AccountName
accountNameFromComponents :: [Text] -> AccountName
accountNameInferType :: AccountName -> Maybe AccountType
accountNameInferTypeExcept :: [AccountType] -> AccountName -> Maybe AccountType
accountNameLevel :: AccountName -> Int
accountNamePostingType :: AccountName -> PostingType
accountNameToAccountOnlyRegex :: AccountName -> Regexp
accountNameToAccountOnlyRegexCI :: AccountName -> Regexp
accountNameToAccountRegex :: AccountName -> Regexp
accountNameToAccountRegexCI :: AccountName -> Regexp
accountNameTreeFrom :: [AccountName] -> Tree AccountName
accountNameType :: Map AccountName AccountType -> AccountName -> Maybe AccountType
accountNameWithPostingType :: PostingType -> AccountName -> AccountName
accountNameWithoutPostingType :: AccountName -> AccountName
accountSummarisedName :: AccountName -> Text
acctsep :: Text
acctsepchar :: Char
assetAccountRegex :: Regexp
cashAccountRegex :: Regexp
clipAccountName :: DepthSpec -> AccountName -> AccountName
clipOrEllipsifyAccountName :: DepthSpec -> AccountName -> AccountName
concatAccountNames :: [AccountName] -> AccountName
conversionAccountRegex :: Regexp
defaultBaseConversionAccount :: IsString a => a
elideAccountName :: Int -> AccountName -> AccountName
equityAccountRegex :: Regexp
escapeName :: AccountName -> Text
expandAccountName :: AccountName -> [AccountName]
expandAccountNames :: [AccountName] -> [AccountName]
expenseAccountRegex :: Regexp
getAccountNameClippedDepth :: DepthSpec -> AccountName -> Maybe Int
isAccountNamePrefixOf :: AccountName -> AccountName -> Bool
isSubAccountNameOf :: AccountName -> AccountName -> Bool
joinAccountNames :: AccountName -> AccountName -> AccountName
liabilityAccountRegex :: Regexp
parentAccountName :: AccountName -> AccountName
parentAccountNames :: AccountName -> [AccountName]
revenueAccountRegex :: Regexp
subAccountNamesFrom :: [AccountName] -> AccountName -> [AccountName]
tests_AccountName :: TestTree
topAccountName :: AccountName -> AccountName
topAccountNames :: [AccountName] -> [AccountName]
unbudgetedAccountName :: Text
(@@) :: Amount -> Amount -> Amount
amountCost :: Amount -> Amount
amountDisplayPrecision :: Amount -> Word8
amountInternalPrecision :: Amount -> Word8
amountIsZero :: Amount -> Bool
amountLooksZero :: Amount -> Bool
amountSetFullPrecision :: Amount -> Amount
amountSetFullPrecisionUpTo :: Maybe Word8 -> Amount -> Amount
amountSetPrecision :: AmountPrecision -> Amount -> Amount
amountSetPrecisionMax :: Word8 -> Amount -> Amount
amountSetPrecisionMin :: Word8 -> Amount -> Amount
amountSetStyles :: Map CommoditySymbol AmountStyle -> Amount -> Amount
amountStripCost :: Amount -> Amount
amountStyleSetRounding :: Rounding -> AmountStyle -> AmountStyle
amountStylesSetRounding :: Rounding -> Map CommoditySymbol AmountStyle -> Map CommoditySymbol AmountStyle
amountUnstyled :: Amount -> Amount
amountWithCommodity :: CommoditySymbol -> Amount -> Amount
amounts :: MixedAmount -> [Amount]
amountsPreservingZeros :: MixedAmount -> [Amount]
amountsRaw :: MixedAmount -> [Amount]
amountstyle :: AmountStyle
at :: Amount -> Amount -> Amount
averageMixedAmounts :: Foldable f => f MixedAmount -> MixedAmount
canonicaliseAmount :: Map CommoditySymbol AmountStyle -> Amount -> Amount
canonicaliseMixedAmount :: Map CommoditySymbol AmountStyle -> MixedAmount -> MixedAmount
commodityStylesFromAmounts :: [Amount] -> Either String (Map CommoditySymbol AmountStyle)
cshowAmount :: Amount -> String
defaultFmt :: AmountFormat
defaultMaxPrecision :: Word8
divideAmount :: Quantity -> Amount -> Amount
divideMixedAmount :: Quantity -> MixedAmount -> MixedAmount
eur :: DecimalRaw Integer -> Amount
filterMixedAmount :: (Amount -> Bool) -> MixedAmount -> MixedAmount
filterMixedAmountByCommodity :: CommoditySymbol -> MixedAmount -> MixedAmount
fullZeroFmt :: AmountFormat
gbp :: DecimalRaw Integer -> Amount
getAmounts :: Amount -> [Amount]
hrs :: Quantity -> Amount
invertAmount :: Amount -> Amount
isMissingMixedAmount :: MixedAmount -> Bool
isNegativeAmount :: Amount -> Bool
isNegativeMixedAmount :: MixedAmount -> Maybe Bool
isNonsimpleCommodityChar :: Char -> Bool
maAddAmount :: MixedAmount -> Amount -> MixedAmount
maAddAmounts :: Foldable t => MixedAmount -> t Amount -> MixedAmount
maCommodities :: MixedAmount -> Set CommoditySymbol
maIsNonZero :: MixedAmount -> Bool
maIsZero :: MixedAmount -> Bool
maMinus :: MixedAmount -> MixedAmount -> MixedAmount
maNegate :: MixedAmount -> MixedAmount
maPlus :: MixedAmount -> MixedAmount -> MixedAmount
maSum :: Foldable t => t MixedAmount -> MixedAmount
machineFmt :: AmountFormat
mapMixedAmount :: (Amount -> Amount) -> MixedAmount -> MixedAmount
missingamt :: Amount
missingmixedamt :: MixedAmount
mixed :: Foldable t => t Amount -> MixedAmount
mixedAmount :: Amount -> MixedAmount
mixedAmountCost :: MixedAmount -> MixedAmount
mixedAmountIsZero :: MixedAmount -> Bool
mixedAmountLooksZero :: MixedAmount -> Bool
mixedAmountSetFullPrecision :: MixedAmount -> MixedAmount
mixedAmountSetFullPrecisionUpTo :: Maybe Word8 -> MixedAmount -> MixedAmount
mixedAmountSetPrecision :: AmountPrecision -> MixedAmount -> MixedAmount
mixedAmountSetPrecisionMax :: Word8 -> MixedAmount -> MixedAmount
mixedAmountSetPrecisionMin :: Word8 -> MixedAmount -> MixedAmount
mixedAmountSetStyles :: Map CommoditySymbol AmountStyle -> MixedAmount -> MixedAmount
mixedAmountStripCosts :: MixedAmount -> MixedAmount
mixedAmountUnstyled :: MixedAmount -> MixedAmount
multiplyAmount :: Quantity -> Amount -> Amount
multiplyMixedAmount :: Quantity -> MixedAmount -> MixedAmount
noCostFmt :: AmountFormat
nullamt :: Amount
nullmixedamt :: MixedAmount
num :: Quantity -> Amount
oneLineFmt :: AmountFormat
oneLineNoCostFmt :: AmountFormat
per :: Quantity -> Amount
quoteCommoditySymbolIfNeeded :: Text -> Text
setAmountDecimalPoint :: Maybe Char -> Amount -> Amount
setAmountInternalPrecision :: Word8 -> Amount -> Amount
showAmount :: Amount -> String
showAmountB :: AmountFormat -> Amount -> WideBuilder
showAmountCost :: Amount -> String
showAmountCostB :: AmountFormat -> Amount -> WideBuilder
showAmountDebug :: Amount -> String
showAmountWith :: AmountFormat -> Amount -> String
showAmountWithZeroCommodity :: Amount -> String
showAmountWithoutCost :: Amount -> String
showCommoditySymbol :: Text -> Text
showMixedAmount :: MixedAmount -> String
showMixedAmountB :: AmountFormat -> MixedAmount -> WideBuilder
showMixedAmountDebug :: MixedAmount -> String
showMixedAmountElided :: Int -> Bool -> MixedAmount -> String
showMixedAmountLinesB :: AmountFormat -> MixedAmount -> [WideBuilder]
showMixedAmountLinesPartsB :: AmountFormat -> MixedAmount -> [(WideBuilder, Amount)]
showMixedAmountOneLine :: MixedAmount -> String
showMixedAmountOneLineWithoutCost :: Bool -> MixedAmount -> String
showMixedAmountWith :: AmountFormat -> MixedAmount -> String
showMixedAmountWithZeroCommodity :: MixedAmount -> String
showMixedAmountWithoutCost :: Bool -> MixedAmount -> String
styleAmount :: Map CommoditySymbol AmountStyle -> Amount -> Amount
styleMixedAmount :: Map CommoditySymbol AmountStyle -> MixedAmount -> MixedAmount
sumAndAverageMixedAmounts :: Foldable f => f MixedAmount -> (MixedAmount, MixedAmount)
tests_Amount :: TestTree
unifyMixedAmount :: MixedAmount -> Maybe Amount
usd :: DecimalRaw Integer -> Amount
withDecimalPoint :: Amount -> Maybe Char -> Amount
withInternalPrecision :: Amount -> Word8 -> Amount
withPrecision :: Amount -> AmountPrecision -> Amount
mapBalanceData :: (MixedAmount -> MixedAmount) -> BalanceData -> BalanceData
opBalanceData :: (MixedAmount -> MixedAmount -> MixedAmount) -> BalanceData -> BalanceData -> BalanceData
tests_BalanceData :: TestTree
balanceSingleTransaction :: BalancingOpts -> Transaction -> Either String Transaction
balanceTransactionHelper :: BalancingOpts -> Transaction -> Either String (Transaction, [(AccountName, MixedAmount)])
defbalancingopts :: BalancingOpts
isTransactionBalanced :: BalancingOpts -> Transaction -> Bool
journalBalanceTransactions :: BalancingOpts -> Journal -> Either String Journal
tests_Balancing :: TestTree
transactionCheckAssertions :: BalancingOpts -> Journal -> Transaction -> Either String Transaction
currencies :: [([Char], CurrencyCode, CurrencySymbol)]
currencyCodeToSymbol :: CurrencyCode -> Maybe CurrencySymbol
currencySymbolToCode :: CurrencySymbol -> Maybe CurrencyCode
addGregorianMonthsToMonthday :: MonthDay -> Integer -> Day -> Day
advanceToNthWeekday :: Int -> WeekDay -> Day -> Day
datesepchar :: forall (m :: Type -> Type). TextParser m Char
datesepchars :: String
daysInSpan :: DateSpan -> Maybe Integer
daysSpan :: [Day] -> DateSpan
elapsedSeconds :: Fractional a => UTCTime -> UTCTime -> a
emptydatespan :: DateSpan
fixSmartDate :: Day -> SmartDate -> EFDay
fixSmartDateStr :: Day -> Text -> Text
fixSmartDateStrEither :: Day -> Text -> Either HledgerParseErrors Text
fixSmartDateStrEither' :: Day -> Text -> Either HledgerParseErrors EFDay
getCurrentDay :: IO Day
getCurrentMonth :: IO Int
getCurrentYear :: IO Integer
groupByDateSpan :: Bool -> (a -> Day) -> [DateSpan] -> [a] -> [(DateSpan, [a])]
isDateSepChar :: Char -> Bool
isEmptySpan :: DateSpan -> Bool
latestSpanContaining :: [DateSpan] -> Day -> Maybe DateSpan
nextNthWeekdayOfMonth :: Int -> WeekDay -> Day -> Day
nextday :: Day -> Day
nextmonthandday :: Month -> MonthDay -> Day -> Day
nextnthdayofmonth :: MonthDay -> Day -> Day
nextweek :: Day -> Day
nthdayofweekcontaining :: WeekDay -> Day -> Day
nulldate :: Day
nulldatespan :: DateSpan
parsePeriodExpr :: Day -> Text -> Either HledgerParseErrors (Interval, DateSpan)
parsePeriodExpr' :: Day -> Text -> (Interval, DateSpan)
parsedate :: String -> Maybe Day
periodContainsDate :: Period -> Day -> Bool
periodexprp :: forall (m :: Type -> Type). Day -> TextParser m (Interval, DateSpan)
prevNthWeekdayOfMonth :: Int -> WeekDay -> Day -> Day
prevday :: Day -> Day
showDate :: Day -> Text
showDateSpan :: DateSpan -> Text
showDateSpanAbbrev :: DateSpan -> Text
showDateSpanDebug :: DateSpan -> String
showEFDate :: EFDay -> Text
smartdate :: forall (m :: Type -> Type). TextParser m SmartDate
spanContainsDate :: DateSpan -> Day -> Bool
spanDefaultsFrom :: DateSpan -> DateSpan -> DateSpan
spanEnd :: DateSpan -> Maybe Day
spanEndYear :: DateSpan -> Maybe Year
spanExtend :: DateSpan -> DateSpan -> DateSpan
spanIntersect :: DateSpan -> DateSpan -> DateSpan
spanStart :: DateSpan -> Maybe Day
spanStartYear :: DateSpan -> Maybe Year
spanUnion :: DateSpan -> DateSpan -> DateSpan
spanValidDefaultsFrom :: DateSpan -> DateSpan -> DateSpan
spanYears :: DateSpan -> [Year]
spansIntersect :: [DateSpan] -> DateSpan
spansSpan :: [DateSpan] -> DateSpan
spansUnion :: [DateSpan] -> DateSpan
startofmonth :: Day -> Day
startofquarter :: Day -> Day
startofweek :: Day -> Day
startofyear :: Day -> Day
yearp :: forall (m :: Type -> Type). TextParser m Integer
boundariesToDayPartition :: NonEmpty Day -> DayPartition
boundariesToMaybeDayPartition :: [Day] -> Maybe DayPartition
dayPartitionFind :: Day -> DayPartition -> (Maybe Day, Day)
dayPartitionStartEnd :: DayPartition -> (Day, Day)
dayPartitionToDateSpans :: DayPartition -> [DateSpan]
dayPartitionToList :: DayPartition -> [(Day, Day)]
dayPartitionToNonEmpty :: DayPartition -> NonEmpty (Day, Day)
intervalBoundaryBefore :: Interval -> Day -> Day
maybeDayPartitionToDateSpans :: Maybe DayPartition -> [DateSpan]
splitSpan :: Bool -> Interval -> DateSpan -> Maybe DayPartition
tests_DayPartition :: TestTree
unionDayPartitions :: DayPartition -> DayPartition -> Maybe DayPartition
makeAccountTagErrorExcerpt :: (AccountName, AccountDeclarationInfo) -> TagName -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makeBalanceAssertionErrorExcerpt :: Posting -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makePostingAccountErrorExcerpt :: Posting -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makePostingErrorExcerpt :: Posting -> (Posting -> Transaction -> Text -> Maybe (Int, Maybe Int)) -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makePriceDirectiveErrorExcerpt :: PriceDirective -> Maybe (PriceDirective -> Text -> Maybe (Int, Maybe Int)) -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
makeTransactionErrorExcerpt :: Transaction -> (Transaction -> Maybe (Int, Maybe Int)) -> (FilePath, Int, Maybe (Int, Maybe Int), Text)
transactionFindPostingIndex :: (Posting -> Bool) -> Transaction -> Maybe Int
addPeriodicTransaction :: PeriodicTransaction -> Journal -> Journal
addPriceDirective :: PriceDirective -> Journal -> Journal
addTransaction :: Transaction -> Journal -> Journal
addTransactionModifier :: TransactionModifier -> Journal -> Journal
dbgJournalAcctDeclOrder :: String -> Journal -> Journal
filterJournalAmounts :: Query -> Journal -> Journal
filterJournalPostings :: Query -> Journal -> Journal
filterJournalRelatedPostings :: Query -> Journal -> Journal
filterJournalTransactions :: Query -> Journal -> Journal
filterPostingAmount :: Query -> Posting -> Maybe Posting
filterTransactionAmounts :: Query -> Transaction -> Transaction
filterTransactionPostings :: Query -> Transaction -> Transaction
filterTransactionPostingsExtra :: (AccountName -> Maybe AccountType) -> Query -> Transaction -> Transaction
filterTransactionRelatedPostings :: Query -> Transaction -> Transaction
journalAccountNameTree :: Journal -> Tree AccountName
journalAccountNames :: Journal -> [AccountName]
journalAccountNamesDeclared :: Journal -> [AccountName]
journalAccountNamesDeclaredOrImplied :: Journal -> [AccountName]
journalAccountNamesDeclaredOrUsed :: Journal -> [AccountName]
journalAccountNamesImplied :: Journal -> [AccountName]
journalAccountNamesUsed :: Journal -> [AccountName]
journalAccountTags :: Journal -> AccountName -> [Tag]
journalAccountType :: Journal -> AccountName -> Maybe AccountType
journalAccountTypes :: Journal -> Map AccountName AccountType
journalAddAccountTypes :: Journal -> Journal
journalAmounts :: Journal -> Set Amount
journalApplyAliases :: [AccountAlias] -> Journal -> Either RegexError Journal
journalBaseConversionAccount :: Journal -> AccountName
journalCommodities :: Journal -> Set CommoditySymbol
journalCommoditiesDeclared :: Journal -> [CommoditySymbol]
journalCommoditiesFromPriceDirectives :: Journal -> Set CommoditySymbol
journalCommoditiesFromTransactions :: Journal -> Set CommoditySymbol
journalCommoditiesUsed :: Journal -> [CommoditySymbol]
journalCommodityStyles :: Journal -> Map CommoditySymbol AmountStyle
journalCommodityStylesWith :: Rounding -> Journal -> Map CommoditySymbol AmountStyle
journalConcat :: Journal -> Journal -> Journal
journalConversionAccounts :: Journal -> [AccountName]
journalDateSpan :: Bool -> Journal -> DateSpan
journalDateSpanBothDates :: Journal -> DateSpan
journalDbg :: Journal -> String
journalDescriptions :: Journal -> [Text]
journalEndDate :: Bool -> Journal -> Maybe Day
journalFilePath :: Journal -> FilePath
journalFilePaths :: Journal -> [FilePath]
journalInferCommodityStyles :: Journal -> Either String Journal
journalInferEquityFromCosts :: Bool -> Journal -> Journal
journalInferMarketPricesFromTransactions :: Journal -> Journal
journalInheritedAccountTags :: Journal -> AccountName -> [Tag]
journalLastDay :: Bool -> Journal -> Maybe Day
journalLeafAccountNames :: Journal -> [AccountName]
journalMapPostingAmounts :: (MixedAmount -> MixedAmount) -> Journal -> Journal
journalMapPostings :: (Posting -> Posting) -> Journal -> Journal
journalMapTransactions :: (Transaction -> Transaction) -> Journal -> Journal
journalModifyTransactions :: Bool -> Day -> Journal -> Either String Journal
journalNextTransaction :: Journal -> Transaction -> Maybe Transaction
journalNumberAndTieTransactions :: Journal -> Journal
journalNumberTransactions :: Journal -> Journal
journalPayeesDeclared :: Journal -> [Payee]
journalPayeesDeclaredOrUsed :: Journal -> [Payee]
journalPayeesUsed :: Journal -> [Payee]
journalPivot :: Text -> Journal -> Journal
journalPostingAmounts :: Journal -> [MixedAmount]
journalPostingAndCostAmounts :: Journal -> [Amount]
journalPostings :: Journal -> [Posting]
journalPostingsAddAccountTags :: Journal -> Journal
journalPostingsKeepAccountTagsOnly :: Journal -> Journal
journalPrevTransaction :: Journal -> Transaction -> Maybe Transaction
journalRenumberAccountDeclarations :: Journal -> Journal
journalReverse :: Journal -> Journal
journalSetLastReadTime :: POSIXTime -> Journal -> Journal
journalStartDate :: Bool -> Journal -> Maybe Day
journalStyleAmounts :: Journal -> Either String Journal
journalTagCostsAndEquityAndMaybeInferCosts :: Bool -> Bool -> Journal -> Either String Journal
journalTagsDeclared :: Journal -> [TagName]
journalTagsDeclaredOrUsed :: Journal -> [TagName]
journalTagsUsed :: Journal -> [TagName]
journalToCost :: ConversionOp -> Journal -> Journal
journalTransactionAt :: Journal -> Integer -> Maybe Transaction
journalTransactionsSimilarTo :: Journal -> Text -> Query -> SimilarityScore -> Int -> [(DateWeightedSimilarityScore, Age, SimilarityScore, Transaction)]
journalUntieTransactions :: Transaction -> Transaction
nulljournal :: Journal
samplejournal :: Journal
samplejournalMaybeExplicit :: Bool -> Journal
showJournalPostingAmountsDebug :: Journal -> String
tests_Journal :: TestTree
journalCheckAccounts :: Journal -> Either String ()
journalCheckBalanceAssertions :: Journal -> Either String ()
journalCheckCommodities :: Journal -> Either String ()
journalCheckPairedConversionPostings :: Journal -> Either String ()
journalCheckPayees :: Journal -> Either String ()
journalCheckRecentAssertions :: Journal -> Either String ()
journalCheckTags :: Journal -> Either String ()
journalStrictChecks :: Journal -> Either String ()
journalCheckOrdereddates :: Journal -> Either String ()
journalCheckUniqueleafnames :: Journal -> Either String ()
readJsonFile :: FromJSON a => FilePath -> IO a
toJsonText :: ToJSON a => a -> Text
writeJsonFile :: ToJSON a => FilePath -> a -> IO ()
ledgerAccount :: Ledger -> AccountName -> Maybe (Account BalanceData)
ledgerAccountNames :: Ledger -> [AccountName]
ledgerCommodities :: Ledger -> [CommoditySymbol]
ledgerDateSpan :: Ledger -> DateSpan
ledgerFromJournal :: Query -> Journal -> Ledger
ledgerLeafAccounts :: Ledger -> [Account BalanceData]
ledgerPostings :: Ledger -> [Posting]
ledgerRootAccount :: Ledger -> Account BalanceData
ledgerTopAccounts :: Ledger -> [Account BalanceData]
nullledger :: Ledger
tests_Ledger :: TestTree
dateSpanAsPeriod :: DateSpan -> Period
firstMonthOfQuarter :: Num a => a -> a
isLastDayOfMonth :: (Eq a1, Eq a2, Num a1, Num a2) => Year -> a1 -> a2 -> Bool
isStandardPeriod :: Period -> Bool
mondayBefore :: Day -> Day
periodAsDateSpan :: Period -> DateSpan
periodEnd :: Period -> Maybe Day
periodGrow :: Period -> Period
periodMoveTo :: Day -> Period -> Period
periodNext :: Period -> Period
periodNextIn :: DateSpan -> Period -> Period
periodPrevious :: Period -> Period
periodPreviousIn :: DateSpan -> Period -> Period
periodShrink :: Day -> Period -> Period
periodStart :: Period -> Maybe Day
periodTextWidth :: Period -> Int
quarterContainingMonth :: Integral a => a -> a
showPeriod :: Period -> Text
showPeriodAbbrev :: Period -> Text
simplifyPeriod :: Period -> Period
startOfFirstWeekInMonth :: Year -> MonthOfYear -> Day
thursdayOfWeekContaining :: Day -> Day
yearMonthContainingWeekStarting :: Day -> (Year, MonthOfYear)
insertPeriodData :: Semigroup a => Maybe Day -> a -> PeriodData a -> PeriodData a
lookupPeriodData :: Day -> PeriodData a -> Maybe (Day, a)
lookupPeriodDataOrHistorical :: Day -> PeriodData a -> (Maybe Day, a)
mergePeriodData :: (a -> c) -> (b -> c) -> (a -> b -> c) -> PeriodData a -> PeriodData b -> PeriodData c
opPeriodData :: (a -> b -> c) -> PeriodData a -> PeriodData b -> PeriodData c
padPeriodData :: a -> PeriodData b -> PeriodData a -> PeriodData a
periodDataFromList :: a -> [(Day, a)] -> PeriodData a
periodDataToList :: PeriodData a -> (a, [(Day, a)])
tests_PeriodData :: TestTree
checkPeriodicTransactionStartDate :: Interval -> DateSpan -> Text -> Maybe String
runPeriodicTransaction :: Bool -> PeriodicTransaction -> DateSpan -> [Transaction]
accountNamesFromPostings :: [Posting] -> [AccountName]
balassert :: Amount -> Maybe BalanceAssertion
balassertParInc :: Amount -> Maybe BalanceAssertion
balassertTot :: Amount -> Maybe BalanceAssertion
balassertTotInc :: Amount -> Maybe BalanceAssertion
commentAddTag :: Text -> Tag -> Text
commentAddTagNextLine :: Text -> Tag -> Text
commentAddTagUnspaced :: Text -> Tag -> Text
commentJoin :: Text -> Text -> Text
conversionPostingTagName :: TagName
costPostingTagName :: TagName
generatedPostingTagName :: TagName
generatedTransactionTagName :: TagName
hasAmount :: Posting -> Bool
hasBalanceAssignment :: Posting -> Bool
isBalancedVirtual :: Posting -> Bool
isEmptyPosting :: Posting -> Bool
isReal :: Posting -> Bool
isVirtual :: Posting -> Bool
modifiedTransactionTagName :: TagName
nullassertion :: BalanceAssertion
nullposting :: Posting
originalPosting :: Posting -> Posting
post :: AccountName -> Amount -> Posting
post' :: AccountName -> Amount -> Maybe BalanceAssertion -> Posting
posting :: Posting
postingAddHiddenAndMaybeVisibleTag :: Bool -> HiddenTag -> Posting -> Posting
postingAddInferredEquityPostings :: Bool -> Text -> Posting -> [Posting]
postingAddTags :: Posting -> [Tag] -> Posting
postingAllTags :: Posting -> [Tag]
postingApplyAliases :: [AccountAlias] -> Posting -> Either RegexError Posting
postingApplyCommodityStyles :: Map CommoditySymbol AmountStyle -> Posting -> Posting
postingApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> ValuationType -> Posting -> Posting
postingAsLines :: Bool -> Bool -> Int -> Int -> Posting -> ([Text], Int, Int)
postingDate :: Posting -> Day
postingDate2 :: Posting -> Day
postingDateOrDate2 :: WhichDate -> Posting -> Day
postingIndent :: Text -> Text
postingNegate :: Posting -> Posting
postingNegateMainAmount :: Posting -> Posting
postingPriceDirectivesFromCost :: Posting -> [PriceDirective]
postingStatus :: Posting -> Status
postingStripCosts :: Posting -> Posting
postingStyleAmounts :: Map CommoditySymbol AmountStyle -> Posting -> Posting
postingToCost :: ConversionOp -> Posting -> Maybe Posting
postingTransformAmount :: (MixedAmount -> MixedAmount) -> Posting -> Posting
postingsAsLines :: Bool -> [Posting] -> [Text]
relatedPostings :: Posting -> [Posting]
renderCommentLines :: Text -> [Text]
showAccountName :: Maybe Int -> PostingType -> AccountName -> Text
showBalanceAssertion :: BalanceAssertion -> WideBuilder
showPosting :: Posting -> String
showPostingLines :: Posting -> [Text]
sumPostings :: [Posting] -> MixedAmount
tests_Posting :: TestTree
transactionAllTags :: Transaction -> [Tag]
vpost :: AccountName -> Amount -> Posting
vpost' :: AccountName -> Amount -> Maybe BalanceAssertion -> Posting
appendopts :: [(String, String)] -> RawOpts -> RawOpts
boolopt :: String -> RawOpts -> Bool
choiceopt :: (String -> Maybe a) -> RawOpts -> Maybe a
collectopts :: ((String, String) -> Maybe a) -> RawOpts -> [a]
dropRawOpt :: String -> RawOpts -> RawOpts
intopt :: String -> RawOpts -> Int
listofstringopt :: String -> RawOpts -> [String]
maybecharopt :: String -> RawOpts -> Maybe Char
maybeintopt :: String -> RawOpts -> Maybe Int
maybeposintopt :: String -> RawOpts -> Maybe Int
maybestringopt :: String -> RawOpts -> Maybe String
maybeynaopt :: String -> RawOpts -> Maybe YNA
maybeynopt :: String -> RawOpts -> Maybe Bool
mkRawOpts :: [(String, String)] -> RawOpts
overRawOpts :: ([(String, String)] -> [(String, String)]) -> RawOpts -> RawOpts
posintopt :: String -> RawOpts -> Int
setboolopt :: String -> RawOpts -> RawOpts
setopt :: String -> String -> RawOpts -> RawOpts
stringopt :: String -> RawOpts -> String
toggleopt :: String -> RawOpts -> Bool
unsetboolopt :: String -> RawOpts -> RawOpts
defaultBalanceLineFormat :: StringFormat
defaultStringFormatStyle :: [StringFormatComponent] -> StringFormat
parseStringFormat :: Text -> Either String StringFormat
tests_StringFormat :: TestTree
tests_Timeclock :: TestTree
timeclockToTransactions :: LocalTime -> [TimeclockEntry] -> [Transaction]
timeclockToTransactionsOld :: LocalTime -> [TimeclockEntry] -> [Transaction]
annotateErrorWithTransaction :: Transaction -> String -> String
assignmentPostings :: Transaction -> [Posting]
balancedVirtualPostings :: Transaction -> [Posting]
hasRealPostings :: Transaction -> Bool
nulltransaction :: Transaction
partitionAndCheckConversionPostings :: Bool -> [AccountName] -> [IdxPosting] -> Either Text ([(IdxPosting, IdxPosting)], ([IdxPosting], [IdxPosting]))
payeeAndNoteFromDescription :: Text -> (Text, Text)
payeeAndNoteFromDescription' :: Text -> (Text, Text)
realPostings :: Transaction -> [Posting]
showTransaction :: Transaction -> Text
showTransactionLineFirstPart :: Transaction -> Text
showTransactionOneLineAmounts :: Transaction -> Text
tests_Transaction :: TestTree
transaction :: Day -> [Posting] -> Transaction
transactionAddHiddenAndMaybeVisibleTag :: Bool -> HiddenTag -> Transaction -> Transaction
transactionAddTags :: Transaction -> [Tag] -> Transaction
transactionAmounts :: Transaction -> [MixedAmount]
transactionApplyAliases :: [AccountAlias] -> Transaction -> Either RegexError Transaction
transactionApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> ValuationType -> Transaction -> Transaction
transactionCommodityStyles :: Transaction -> Map CommoditySymbol AmountStyle
transactionCommodityStylesWith :: Rounding -> Transaction -> Map CommoditySymbol AmountStyle
transactionDate2 :: Transaction -> Day
transactionDateOrDate2 :: WhichDate -> Transaction -> Day
transactionFile :: Transaction -> FilePath
transactionInferEquityPostings :: Bool -> AccountName -> Transaction -> Transaction
transactionMapPostingAmounts :: (MixedAmount -> MixedAmount) -> Transaction -> Transaction
transactionMapPostings :: (Posting -> Posting) -> Transaction -> Transaction
transactionNegate :: Transaction -> Transaction
transactionNote :: Transaction -> Text
transactionPayee :: Transaction -> Text
transactionTagCostsAndEquityAndMaybeInferCosts :: Bool -> Bool -> [AccountName] -> Transaction -> Either String Transaction
transactionToCost :: ConversionOp -> Transaction -> Transaction
transactionTransformPostings :: (Posting -> Posting) -> Transaction -> Transaction
transactionsPostings :: [Transaction] -> [Posting]
txnTieKnot :: Transaction -> Transaction
txnUntieKnot :: Transaction -> Transaction
virtualPostings :: Transaction -> [Posting]
modifyTransactions :: (AccountName -> Maybe AccountType) -> (AccountName -> [Tag]) -> Map CommoditySymbol AmountStyle -> Day -> Bool -> [TransactionModifier] -> [Transaction] -> Either String [Transaction]
fromEFDay :: EFDay -> Day
isAccountSubtypeOf :: AccountType -> AccountType -> Bool
isBalanceSheetAccountType :: AccountType -> Bool
isDecimalMark :: Char -> Bool
isHiddenTagName :: TagName -> Bool
isIncomeStatementAccountType :: AccountType -> Bool
maCompare :: MixedAmount -> MixedAmount -> Ordering
modifyEFDay :: (Day -> Day) -> EFDay -> EFDay
nullaccountdeclarationinfo :: AccountDeclarationInfo
nullpayeedeclarationinfo :: PayeeDeclarationInfo
nullperiodictransaction :: PeriodicTransaction
nullsourcepos :: SourcePos
nullsourcepospair :: (SourcePos, SourcePos)
nulltagdeclarationinfo :: TagDeclarationInfo
nulltransactionmodifier :: TransactionModifier
showMarketPrice :: MarketPrice -> String
showMarketPrices :: [MarketPrice] -> [Char]
toHiddenTag :: Tag -> HiddenTag
toHiddenTagName :: TagName -> TagName
toVisibleTag :: HiddenTag -> Tag
toVisibleTagName :: TagName -> TagName
amountPriceDirectiveFromCost :: Day -> Amount -> Maybe PriceDirective
journalPriceOracle :: Bool -> Journal -> PriceOracle
marketPriceReverse :: MarketPrice -> MarketPrice
mixedAmountApplyGain :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> Day -> ValuationType -> MixedAmount -> MixedAmount
mixedAmountApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> Day -> ValuationType -> MixedAmount -> MixedAmount
mixedAmountGainAtDate :: PriceOracle -> Map CommoditySymbol AmountStyle -> Maybe CommoditySymbol -> Day -> MixedAmount -> MixedAmount
mixedAmountToCost :: Map CommoditySymbol AmountStyle -> ConversionOp -> MixedAmount -> MixedAmount
mixedAmountValueAtDate :: PriceOracle -> Map CommoditySymbol AmountStyle -> Maybe CommoditySymbol -> Day -> MixedAmount -> MixedAmount
priceDirectiveToMarketPrice :: PriceDirective -> MarketPrice
tests_Valuation :: TestTree
valuationTypeValuationCommodity :: ValuationType -> Maybe CommoditySymbol
filterQuery :: (Query -> Bool) -> Query -> Query
filterQueryOrNotQuery :: (Query -> Bool) -> Query -> Query
generatedTransactionTag :: Query
inAccount :: [QueryOpt] -> Maybe (AccountName, Bool)
inAccountQuery :: [QueryOpt] -> Maybe Query
matchesAccount :: Query -> AccountName -> Bool
matchesAccountExtra :: (AccountName -> Maybe AccountType) -> (AccountName -> [Tag]) -> Query -> AccountName -> Bool
matchesAmount :: Query -> Amount -> Bool
matchesCommodity :: Query -> CommoditySymbol -> Bool
matchesDescription :: Query -> Text -> Bool
matchesMixedAmount :: Query -> MixedAmount -> Bool
matchesPayeeWIP :: Query -> Payee -> Bool
matchesPosting :: Query -> Posting -> Bool
matchesPostingExtra :: (AccountName -> Maybe AccountType) -> Query -> Posting -> Bool
matchesPriceDirective :: Query -> PriceDirective -> Bool
matchesQuery :: (Query -> Bool) -> Query -> Bool
matchesTag :: Query -> Tag -> Bool
matchesTransaction :: Query -> Transaction -> Bool
matchesTransactionExtra :: (AccountName -> Maybe AccountType) -> Query -> Transaction -> Bool
noteTag :: Maybe Text -> Either RegexError Query
parseAccountType :: Bool -> Text -> Either String AccountType
parseDepthSpec :: Text -> Either RegexError DepthSpec
parseQuery :: Day -> Text -> Either String (Query, [QueryOpt])
parseQueryList :: Day -> [Text] -> Either String (Query, [QueryOpt])
parseQueryTerm :: Day -> Text -> Either String (Query, [QueryOpt])
payeeTag :: Maybe Text -> Either RegexError Query
queryDateSpan :: Bool -> Query -> DateSpan
queryDateSpan' :: Query -> DateSpan
queryDepth :: Query -> DepthSpec
queryEndDate :: Bool -> Query -> Maybe Day
queryIsAcct :: Query -> Bool
queryIsAmt :: Query -> Bool
queryIsAmtOrSym :: Query -> Bool
queryIsCode :: Query -> Bool
queryIsDate :: Query -> Bool
queryIsDate2 :: Query -> Bool
queryIsDateOrDate2 :: Query -> Bool
queryIsDepth :: Query -> Bool
queryIsDesc :: Query -> Bool
queryIsNull :: Query -> Bool
queryIsReal :: Query -> Bool
queryIsStartDateOnly :: Bool -> Query -> Bool
queryIsStatus :: Query -> Bool
queryIsSym :: Query -> Bool
queryIsTag :: Query -> Bool
queryIsTransactionRelated :: Query -> Bool
queryIsType :: Query -> Bool
queryStartDate :: Bool -> Query -> Maybe Day
queryprefixes :: [Text]
simplifyQuery :: Query -> Query
tests_Query :: TestTree
words'' :: [Text] -> Text -> [Text]
defaultJournal :: IO Journal
defaultJournalPath :: IO String
defaultJournalPathSafely :: IO (Either String String)
defaultJournalSafely :: IO (Either String Journal)
defaultJournalWith :: InputOpts -> IO Journal
defaultJournalWithSafely :: InputOpts -> IO (Either String Journal)
ensureJournalFileExists :: FilePath -> IO ()
isWindowsUnsafeDotPath :: FilePath -> Bool
journalDefaultFilename :: FilePath
journalEnvVar :: String
orDieTrying :: MonadIO m => ExceptT String m a -> m a
readJournal :: InputOpts -> Maybe FilePath -> Handle -> ExceptT String IO Journal
readJournal' :: Handle -> IO Journal
readJournal'' :: Text -> IO Journal
readJournalFile :: InputOpts -> PrefixedFilePath -> ExceptT String IO Journal
readJournalFile' :: PrefixedFilePath -> IO Journal
readJournalFiles :: InputOpts -> [PrefixedFilePath] -> ExceptT String IO Journal
readJournalFiles' :: [PrefixedFilePath] -> IO Journal
readJournalFilesAndLatestDates :: InputOpts -> [PrefixedFilePath] -> ExceptT String IO (Journal, [LatestDatesForFile])
requireJournalFileExists :: FilePath -> IO ()
saveLatestDates :: LatestDates -> FilePath -> IO ()
saveLatestDatesForFiles :: [LatestDatesForFile] -> IO ()
tests_Read :: TestTree
accountaliasp :: forall (m :: Type -> Type). TextParser m AccountAlias
accountnamenosemicolonp :: forall (m :: Type -> Type). TextParser m AccountName
accountnamep :: forall (m :: Type -> Type). TextParser m AccountName
addAccountAlias :: MonadState Journal m => AccountAlias -> m ()
addDeclaredAccountTags :: forall (m :: Type -> Type). AccountName -> [Tag] -> JournalParser m ()
addDeclaredAccountType :: forall (m :: Type -> Type). AccountName -> AccountType -> JournalParser m ()
aliasesFromOpts :: InputOpts -> [AccountAlias]
amountp :: forall (m :: Type -> Type). JournalParser m Amount
amountp' :: forall (m :: Type -> Type). Bool -> JournalParser m Amount
balanceassertionp :: forall (m :: Type -> Type). JournalParser m BalanceAssertion
bracketeddatetagsp :: forall (m :: Type -> Type). Maybe Year -> TextParser m [(TagName, Day)]
clearAccountAliases :: MonadState Journal m => m ()
codep :: forall (m :: Type -> Type). TextParser m Text
commentlinetagsp :: forall (m :: Type -> Type). TextParser m [Tag]
commoditysymbolp :: forall (m :: Type -> Type). TextParser m CommoditySymbol
costp :: forall (m :: Type -> Type). Amount -> JournalParser m AmountCost
datep :: forall (m :: Type -> Type). JournalParser m Day
datetimep :: forall (m :: Type -> Type). JournalParser m LocalTime
descriptionp :: forall (m :: Type -> Type). TextParser m Text
doublequotedtextp :: forall (m :: Type -> Type). TextParser m Text
emptyorcommentlinep :: forall (m :: Type -> Type). TextParser m ()
emptyorcommentlinep2 :: forall (m :: Type -> Type). [Char] -> TextParser m ()
followingcommentp :: forall (m :: Type -> Type). TextParser m Text
fromRawNumber :: RawNumber -> Maybe Integer -> Either String (Quantity, Word8, Maybe Char, Maybe DigitGroupStyle)
getAccountAliases :: MonadState Journal m => m [AccountAlias]
getAmountStyle :: forall (m :: Type -> Type). CommoditySymbol -> JournalParser m (Maybe AmountStyle)
getDefaultAmountStyle :: forall (m :: Type -> Type). JournalParser m (Maybe AmountStyle)
getDefaultCommodityAndStyle :: forall (m :: Type -> Type). JournalParser m (Maybe (CommoditySymbol, AmountStyle))
getParentAccount :: forall (m :: Type -> Type). JournalParser m AccountName
getYear :: forall (m :: Type -> Type). JournalParser m (Maybe Year)
handleReadFnToTextReadFn :: (InputOpts -> FilePath -> Text -> ExceptT String IO Journal) -> InputOpts -> FilePath -> Handle -> ExceptT String IO Journal
initialiseAndParseJournal :: ErroringJournalParser IO ParsedJournal -> InputOpts -> FilePath -> Text -> ExceptT String IO Journal
isLineCommentStart :: Char -> Bool
isSameLineCommentStart :: Char -> Bool
isStdin :: PrefixedFilePath -> Bool
journalAddAutoPostings :: Bool -> Day -> BalancingOpts -> Journal -> Either String Journal
journalAddFile :: (FilePath, Text) -> Journal -> Journal
journalAddForecast :: Bool -> Maybe DateSpan -> Journal -> Journal
journalFinalise :: InputOpts -> FilePath -> Text -> ParsedJournal -> ExceptT String IO Journal
lotcostp :: forall (m :: Type -> Type). JournalParser m ()
modifiedaccountnamep :: forall (m :: Type -> Type). Bool -> JournalParser m AccountName
multilinecommentp :: forall (m :: Type -> Type). TextParser m ()
noncommenttext1p :: forall (m :: Type -> Type). TextParser m Text
noncommenttextp :: forall (m :: Type -> Type). TextParser m Text
numberp :: forall (m :: Type -> Type). Maybe AmountStyle -> TextParser m (Quantity, Word8, Maybe Char, Maybe DigitGroupStyle)
parseAndFinaliseJournal :: ErroringJournalParser IO ParsedJournal -> InputOpts -> FilePath -> Text -> ExceptT String IO Journal
parseamount :: String -> Either HledgerParseErrors Amount
parseamount' :: String -> Amount
parsemixedamount :: String -> Either HledgerParseErrors MixedAmount
parsemixedamount' :: String -> MixedAmount
popParentAccount :: forall (m :: Type -> Type). JournalParser m ()
postingcommentp :: forall (m :: Type -> Type). Maybe Year -> TextParser m (Text, [Tag], Maybe Day, Maybe Day)
pushParentAccount :: forall (m :: Type -> Type). AccountName -> JournalParser m ()
rawOptsToInputOpts :: Day -> Bool -> Bool -> RawOpts -> InputOpts
rawnumberp :: forall (m :: Type -> Type). TextParser m (Either AmbiguousNumber RawNumber)
secondarydatep :: forall (m :: Type -> Type). Day -> TextParser m Day
setDefaultCommodityAndStyle :: forall (m :: Type -> Type). (CommoditySymbol, AmountStyle) -> JournalParser m ()
setYear :: forall (m :: Type -> Type). Year -> JournalParser m ()
singlespacednoncommenttext1p :: forall (m :: Type -> Type). TextParser m Text
singlespacedtext1p :: forall (m :: Type -> Type). TextParser m Text
singlespacedtextsatisfying1p :: forall (m :: Type -> Type). (Char -> Bool) -> TextParser m Text
singlespacep :: forall (m :: Type -> Type). TextParser m ()
spaceandamountormissingp :: forall (m :: Type -> Type). JournalParser m MixedAmount
statusp :: forall (m :: Type -> Type). TextParser m Status
tests_Common :: TestTree
transactioncommentp :: forall (m :: Type -> Type). TextParser m (Text, [Tag])
definputopts :: InputOpts
forecastPeriod :: InputOpts -> Journal -> Maybe DateSpan
findReader :: forall (m :: Type -> Type). MonadIO m => Maybe StorageFormat -> Maybe FilePath -> Maybe (Reader m)
runJournalParser :: Monad m => JournalParser m a -> Text -> m (Either HledgerParseErrors a)
splitReaderPrefix :: PrefixedFilePath -> (Maybe StorageFormat, FilePath)
tmpostingrulep :: forall (m :: Type -> Type). Maybe Year -> JournalParser m TMPostingRule
tests_Reports :: TestTree
accountTransactionsReport :: ReportSpec -> Journal -> Query -> AccountTransactionsReport
accountTransactionsReportByCommodity :: AccountTransactionsReport -> [(CommoditySymbol, AccountTransactionsReport)]
accountTransactionsReportItems :: Query -> Query -> MixedAmount -> (MixedAmount -> MixedAmount) -> (AccountName -> Maybe AccountType) -> [(Day, Transaction)] -> [AccountTransactionsReportItem]
tests_AccountTransactionsReport :: TestTree
transactionRegisterDate :: WhichDate -> Query -> Query -> Transaction -> Day
triAmount :: (a, b, c, d, e, f) -> e
triBalance :: (a, b, c, d, e, f) -> f
triCommodityAmount :: CommoditySymbol -> (a, b, c, d, MixedAmount, f) -> MixedAmount
triCommodityBalance :: CommoditySymbol -> (a, b, c, d, e, MixedAmount) -> MixedAmount
triDate :: (a, Transaction, c, d, e, f) -> Day
triOrigTransaction :: (a, b, c, d, e, f) -> a
balanceReport :: ReportSpec -> Journal -> BalanceReport
flatShowsExclusiveBalance :: Bool
tests_BalanceReport :: TestTree
budgetReport :: ReportSpec -> BalancingOpts -> DateSpan -> Journal -> BudgetReport
tests_BudgetReport :: TestTree
entriesReport :: ReportSpec -> Journal -> EntriesReport
tests_EntriesReport :: TestTree
compoundBalanceReport :: ReportSpec -> Journal -> [CBCSubreportSpec a] -> CompoundPeriodicReport a MixedAmount
compoundBalanceReportWith :: ReportSpec -> Journal -> PriceOracle -> [CBCSubreportSpec a] -> CompoundPeriodicReport a MixedAmount
generateMultiBalanceAccount :: ReportSpec -> Journal -> PriceOracle -> Maybe DayPartition -> [Posting] -> Account BalanceData
generatePeriodicReport :: Show c => (forall a. () => ReportOpts -> (BalanceData -> MixedAmount) -> a -> Account b -> PeriodicReportRow a c) -> (b -> MixedAmount) -> (c -> MixedAmount) -> ReportOpts -> Maybe DayPartition -> Account b -> PeriodicReport DisplayName c
getPostings :: ReportSpec -> Journal -> PriceOracle -> DateSpan -> [Posting]
makePeriodicReportRow :: c -> (Map Day c -> (c, c)) -> ReportOpts -> (b -> c) -> a -> Account b -> PeriodicReportRow a c
makeReportQuery :: ReportSpec -> DateSpan -> ReportSpec
multiBalanceReport :: ReportSpec -> Journal -> MultiBalanceReport
multiBalanceReportWith :: ReportSpec -> Journal -> PriceOracle -> MultiBalanceReport
tests_MultiBalanceReport :: TestTree
mkpostingsReportItem :: Bool -> Bool -> WhichDate -> Maybe Period -> Posting -> MixedAmount -> PostingsReportItem
postingsReport :: ReportSpec -> Journal -> PostingsReport
tests_PostingsReport :: TestTree
balanceAccumulationOverride :: RawOpts -> Maybe BalanceAccumulation
defreportopts :: ReportOpts
defreportspec :: ReportSpec
defsortspec :: SortSpec
flat_ :: ReportOpts -> Bool
intervalFromRawOpts :: RawOpts -> Interval
journalApplyValuationFromOpts :: ReportSpec -> Journal -> Journal
journalApplyValuationFromOptsWith :: ReportSpec -> Journal -> PriceOracle -> Journal
journalValueAndFilterPostings :: ReportSpec -> Journal -> Journal
journalValueAndFilterPostingsWith :: ReportSpec -> Journal -> PriceOracle -> Journal
mixedAmountApplyValuationAfterSumFromOptsWith :: ReportOpts -> Journal -> PriceOracle -> Day -> MixedAmount -> MixedAmount
overEither :: ((a -> Either e b) -> s -> Either e t) -> (a -> b) -> s -> Either e t
postingDateFn :: ReportOpts -> Posting -> Day
queryFromFlags :: ReportOpts -> Query
rawOptsToReportOpts :: Day -> Bool -> RawOpts -> ReportOpts
rawOptsToReportSpec :: Day -> Bool -> RawOpts -> Either String ReportSpec
reportEndDate :: Journal -> ReportSpec -> Maybe Day
reportOptsToSpec :: Day -> ReportOpts -> Either String ReportSpec
reportOptsToggleStatus :: Status -> ReportOpts -> ReportOpts
reportPeriodLastDay :: ReportSpec -> Maybe Day
reportPeriodName :: BalanceAccumulation -> [DateSpan] -> DateSpan -> Text
reportPeriodOrJournalLastDay :: ReportSpec -> Journal -> Maybe Day
reportPeriodOrJournalStart :: ReportSpec -> Journal -> Maybe Day
reportPeriodStart :: ReportSpec -> Maybe Day
reportSpan :: Journal -> ReportSpec -> (DateSpan, Maybe DayPartition)
reportSpanBothDates :: Journal -> ReportSpec -> (DateSpan, Maybe DayPartition)
reportStartDate :: Journal -> ReportSpec -> Maybe Day
requiresHistorical :: ReportOpts -> Bool
setDefaultConversionOp :: ConversionOp -> ReportSpec -> ReportSpec
setEither :: ((a -> Either e b) -> s -> Either e t) -> b -> s -> Either e t
simplifyStatuses :: Ord a => [a] -> [a]
sortKeysDescription :: [Char]
transactionDateFn :: ReportOpts -> Transaction -> Day
tree_ :: ReportOpts -> Bool
updateReportSpec :: ReportOpts -> ReportSpec -> Either String ReportSpec
updateReportSpecWith :: (ReportOpts -> ReportOpts) -> ReportSpec -> Either String ReportSpec
valuationAfterSum :: ReportOpts -> Maybe (Maybe CommoditySymbol)
whichDate :: ReportOpts -> WhichDate
flatDisplayName :: AccountName -> DisplayName
periodicReportSpan :: PeriodicReport a b -> DateSpan
prMapMaybeName :: (a -> Maybe b) -> PeriodicReport a c -> PeriodicReport b c
prMapName :: (a -> b) -> PeriodicReport a c -> PeriodicReport b c
prrAdd :: Semigroup b => PeriodicReportRow a b -> PeriodicReportRow a b -> PeriodicReportRow a b
prrDisplayName :: PeriodicReportRow DisplayName a -> AccountName
prrFullName :: PeriodicReportRow DisplayName a -> AccountName
prrIndent :: PeriodicReportRow DisplayName a -> Int
prrShowDebug :: PeriodicReportRow DisplayName MixedAmount -> String
treeDisplayName :: AccountName -> DisplayName
all1 :: (a -> Bool) -> [a] -> Bool
applyN :: Int -> (a -> a) -> a -> a
curry2 :: ((a, b) -> c) -> a -> b -> c
curry3 :: ((a, b, c) -> d) -> a -> b -> c -> d
curry4 :: ((a, b, c, d) -> e) -> a -> b -> c -> d -> e
fifth5 :: (a, b, c, d, e) -> e
fifth6 :: (a, b, c, d, e, f) -> e
first3 :: (a, b, c) -> a
first4 :: (a, b, c, d) -> a
first5 :: (a, b, c, d, e) -> a
first6 :: (a, b, c, d, e, f) -> a
fourth4 :: (a, b, c, d) -> d
fourth5 :: (a, b, c, d, e) -> d
fourth6 :: (a, b, c, d, e, f) -> d
makeHledgerClassyLenses :: Name -> DecsQ
mapM' :: Monad f => (a -> f b) -> [a] -> f [b]
maximum' :: Integral a => [a] -> a
maximumStrict :: Ord a => [a] -> a
minimumStrict :: Ord a => [a] -> a
multicol :: Int -> [String] -> String
numDigitsInt :: Integral a => Int -> a
numDigitsInteger :: Integer -> Int
second3 :: (a, b, c) -> b
second4 :: (a, b, c, d) -> b
second5 :: (a, b, c, d, e) -> b
second6 :: (a, b, c, d, e, f) -> b
sequence' :: Monad f => [f a] -> f [a]
sixth6 :: (a, b, c, d, e, f) -> f
splitAtElement :: Eq a => a -> [a] -> [[a]]
sumStrict :: Num a => [a] -> a
takeUntilFails :: (a -> Bool) -> [a] -> [a]
takeUntilFailsNE :: (a -> Bool) -> NonEmpty a -> NonEmpty a
tests_Utils :: TestTree
third3 :: (a, b, c) -> c
third4 :: (a, b, c, d) -> c
third5 :: (a, b, c, d, e) -> c
third6 :: (a, b, c, d, e, f) -> c
treeLeaves :: Tree a -> [a]
uncurry2 :: (a -> b -> c) -> (a, b) -> c
uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e
dbg :: Show a => Int -> String -> a -> a
dbg0 :: Show a => String -> a -> a
dbg0IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg0Msg :: String -> a -> a
dbg0MsgIO :: MonadIO m => String -> m ()
dbg0With :: (a -> String) -> a -> a
dbg1 :: Show a => String -> a -> a
dbg1IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg1Msg :: String -> a -> a
dbg1MsgIO :: MonadIO m => String -> m ()
dbg1With :: (a -> String) -> a -> a
dbg2 :: Show a => String -> a -> a
dbg2IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg2Msg :: String -> a -> a
dbg2MsgIO :: MonadIO m => String -> m ()
dbg2With :: (a -> String) -> a -> a
dbg3 :: Show a => String -> a -> a
dbg3IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg3Msg :: String -> a -> a
dbg3MsgIO :: MonadIO m => String -> m ()
dbg3With :: (a -> String) -> a -> a
dbg4 :: Show a => String -> a -> a
dbg4IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg4Msg :: String -> a -> a
dbg4MsgIO :: MonadIO m => String -> m ()
dbg4With :: (a -> String) -> a -> a
dbg5 :: Show a => String -> a -> a
dbg5IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg5Msg :: String -> a -> a
dbg5MsgIO :: MonadIO m => String -> m ()
dbg5With :: (a -> String) -> a -> a
dbg6 :: Show a => String -> a -> a
dbg6IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg6Msg :: String -> a -> a
dbg6MsgIO :: MonadIO m => String -> m ()
dbg6With :: (a -> String) -> a -> a
dbg7 :: Show a => String -> a -> a
dbg7IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg7Msg :: String -> a -> a
dbg7MsgIO :: MonadIO m => String -> m ()
dbg7With :: (a -> String) -> a -> a
dbg8 :: Show a => String -> a -> a
dbg8IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg8Msg :: String -> a -> a
dbg8MsgIO :: MonadIO m => String -> m ()
dbg8With :: (a -> String) -> a -> a
dbg9 :: Show a => String -> a -> a
dbg9IO :: (MonadIO m, Show a) => String -> a -> m ()
dbg9Msg :: String -> a -> a
dbg9MsgIO :: MonadIO m => String -> m ()
dbg9With :: (a -> String) -> a -> a
dbgIO :: (MonadIO m, Show a) => Int -> String -> a -> m ()
dbgMsg :: Int -> String -> a -> a
dbgMsgIO :: MonadIO m => Int -> String -> m ()
dbgWith :: Int -> (a -> String) -> a -> a
dbg_ :: Show a => Int -> String -> a -> a
debugLevel :: Int
ghcDebugMode :: GhcDebugMode
ghcDebugPause' :: IO ()
ghcDebugSupportedInLib :: Bool
lbl_ :: String -> String -> String -> String
progName :: String
withGhcDebug' :: a -> a
ansiFormatError :: String -> String
ansiFormatWarning :: String -> String
bgColor :: ColorIntensity -> Color -> String -> String
bgColorB :: ColorIntensity -> Color -> WideBuilder -> WideBuilder
black' :: String -> String
blue' :: String -> String
bold' :: String -> String
brightBlack' :: String -> String
brightBlue' :: String -> String
brightCyan' :: String -> String
brightGreen' :: String -> String
brightMagenta' :: String -> String
brightRed' :: String -> String
brightWhite' :: String -> String
brightYellow' :: String -> String
color :: ColorIntensity -> Color -> String -> String
colorB :: ColorIntensity -> Color -> WideBuilder -> WideBuilder
colorOption :: IO YNA
cyan' :: String -> String
embedFileRelative :: FilePath -> Q Exp
error' :: String -> a
exitWithErrorMessage :: String -> IO ()
expandGlob :: FilePath -> FilePath -> IO [FilePath]
expandHomePath :: FilePath -> IO FilePath
expandPath :: FilePath -> FilePath -> IO FilePath
faint' :: String -> String
findPager :: IO (Maybe String)
getCurrentLocalTime :: IO LocalTime
getCurrentZonedTime :: IO ZonedTime
getFlag :: [String] -> IO Bool
getHomeSafe :: IO (Maybe FilePath)
getOpt :: [String] -> IO (Maybe String)
getTerminalHeight :: IO (Maybe Int)
getTerminalHeightWidth :: IO (Maybe (Int, Int))
getTerminalWidth :: IO (Maybe Int)
green' :: String -> String
hGetContentsPortably :: Maybe DynEncoding -> Handle -> IO Text
handleExit :: IO () -> IO ()
magenta' :: String -> String
openFileOrStdin :: String -> IO Handle
parseYN :: String -> Either String Bool
parseYNA :: String -> Either String YNA
pprint :: Show a => a -> IO ()
pprint' :: Show a => a -> IO ()
printError :: String -> IO ()
progArgs :: [String]
pshow :: Show a => a -> String
pshow' :: Show a => a -> String
readFileOrStdinPortably :: String -> IO Text
readFileOrStdinPortably' :: Maybe DynEncoding -> String -> IO Text
readFilePortably :: FilePath -> IO Text
readFileStrictly :: FilePath -> IO Text
red' :: String -> String
rgb' :: Float -> Float -> Float -> String -> String
runPager :: String -> IO ()
setupPager :: IO ()
sgrresetall :: String
sortByModTime :: [FilePath] -> IO [FilePath]
terminalBgColor :: Maybe (RGB Float)
terminalFgColor :: Maybe (RGB Float)
terminalIsLight :: Maybe Bool
terminalLightness :: Maybe Float
textToHandle :: Text -> IO Handle
usageError :: String -> a
useColorOnStderr :: IO Bool
useColorOnStderrUnsafe :: Bool
useColorOnStdout :: IO Bool
useColorOnStdoutUnsafe :: Bool
warn :: String -> a -> a
warnIO :: MonadIO m => String -> m ()
white' :: String -> String
yellow' :: String -> String
attachSource :: FilePath -> Text -> FinalParseError' e -> FinalParseErrorBundle' e
choice' :: forall (m :: Type -> Type) a. [TextParser m a] -> TextParser m a
choiceInState :: forall s (m :: Type -> Type) a. [StateT s (ParsecT HledgerParseErrorData Text m) a] -> StateT s (ParsecT HledgerParseErrorData Text m) a
customErrorBundlePretty :: HledgerParseErrors -> String
dbgparse :: forall (m :: Type -> Type). Int -> String -> TextParser m ()
eolof :: forall (m :: Type -> Type). TextParser m ()
excerpt_ :: MonadParsec HledgerParseErrorData Text m => m a -> m SourceExcerpt
finalCustomFailure :: (MonadParsec e s m, MonadError (FinalParseError' e) m) => e -> m a
finalError :: ParseError Text e -> FinalParseError' e
finalErrorBundlePretty :: FinalParseErrorBundle' HledgerParseErrorData -> String
finalFail :: (MonadParsec e s m, MonadError (FinalParseError' e) m) => String -> m a
finalFancyFailure :: (MonadParsec e s m, MonadError (FinalParseError' e) m) => Set (ErrorFancy e) -> m a
fromparse :: (Show t, Show (Token t), Show e) => Either (ParseErrorBundle t e) a -> a
getExcerptText :: SourceExcerpt -> Text
isNewline :: Char -> Bool
isNonNewlineSpace :: Char -> Bool
nonspace :: forall (m :: Type -> Type). TextParser m Char
parseErrorAt :: Int -> String -> HledgerParseErrorData
parseErrorAtRegion :: Int -> Int -> String -> HledgerParseErrorData
parseIncludeFile :: forall (m :: Type -> Type) st a. Monad m => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError m)) a -> st -> FilePath -> Text -> StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError m)) a
parseWithState :: Monad m => st -> StateT st (ParsecT HledgerParseErrorData Text m) a -> Text -> m (Either HledgerParseErrors a)
parseWithState' :: Stream s => st -> StateT st (ParsecT e s Identity) a -> s -> Either (ParseErrorBundle s e) a
parseerror :: (Show t, Show (Token t), Show e) => ParseErrorBundle t e -> a
parsewith :: Parsec e Text a -> Text -> Either (ParseErrorBundle Text e) a
parsewithString :: Parsec e String a -> String -> Either (ParseErrorBundle String e) a
reparseExcerpt :: forall (m :: Type -> Type) a. Monad m => SourceExcerpt -> ParsecT HledgerParseErrorData Text m a -> ParsecT HledgerParseErrorData Text m a
restofline :: forall (m :: Type -> Type). TextParser m String
rtp :: TextParser Identity a -> Text -> Either HledgerParseErrors a
runTextParser :: TextParser Identity a -> Text -> Either HledgerParseErrors a
showDateParseError :: (Show t, Show (Token t), Show e) => ParseErrorBundle t e -> String
skipNonNewlineSpaces :: forall s (m :: Type -> Type). (Stream s, Token s ~ Char) => ParsecT HledgerParseErrorData s m ()
skipNonNewlineSpaces' :: forall s (m :: Type -> Type). (Stream s, Token s ~ Char) => ParsecT HledgerParseErrorData s m Bool
skipNonNewlineSpaces1 :: forall s (m :: Type -> Type). (Stream s, Token s ~ Char) => ParsecT HledgerParseErrorData s m ()
sourcePosPairPretty :: (SourcePos, SourcePos) -> String
spacenonewline :: forall s (m :: Type -> Type). (Stream s, Char ~ Token s) => ParsecT HledgerParseErrorData s m Char
surroundedBy :: Applicative m => m openclose -> m a -> m a
regexMatch :: Regexp -> String -> Bool
regexMatchText :: Regexp -> Text -> Bool
regexMatchTextGroups :: Regexp -> Text -> [Text]
regexReplace :: Regexp -> Replacement -> String -> Either RegexError String
regexReplaceAllBy :: Regexp -> (String -> String) -> String -> String
regexReplaceUnmemo :: Regexp -> Replacement -> String -> Either RegexError String
toRegex :: Text -> Either RegexError Regexp
toRegex' :: Text -> Regexp
toRegexCI :: Text -> Either RegexError Regexp
toRegexCI' :: Text -> Regexp
capitalise :: String -> String
chomp :: String -> String
chomp1 :: String -> String
elideLeft :: Int -> String -> String
elideRight :: Int -> String -> String
formatString :: Bool -> Maybe Int -> Maybe Int -> String -> String
lowercase :: String -> String
lstrip :: String -> String
quoteForCommandLine :: String -> String
quoteIfNeeded :: String -> String
rstrip :: String -> String
singleQuoteIfNeeded :: String -> String
singleline :: String -> String
strWidth :: String -> Int
strWidthAnsi :: String -> Int
strip :: String -> String
strip1By :: (Char -> Bool) -> String -> String
strip1Char :: Char -> Char -> String -> String
stripAnsi :: String -> String
stripBy :: (Char -> Bool) -> String -> String
stripbrackets :: String -> String
takeEnd :: Int -> [a] -> [a]
takeWidth :: Int -> String -> String
underline :: String -> String
uppercase :: String -> String
words' :: String -> [String]
assertLeft :: (HasCallStack, Eq b, Show b) => Either a b -> Assertion
assertParse :: (HasCallStack, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> Assertion
assertParseE :: (HasCallStack, Eq a, Show a, Default st) => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError IO)) a -> Text -> Assertion
assertParseEq :: (HasCallStack, Eq a, Show a, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> a -> Assertion
assertParseEqE :: (Default st, Eq a, Show a, HasCallStack) => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError IO)) a -> Text -> a -> Assertion
assertParseEqOn :: (HasCallStack, Eq b, Show b, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> (a -> b) -> b -> Assertion
assertParseError :: (HasCallStack, Eq a, Show a, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> String -> Assertion
assertParseErrorE :: (Default st, Eq a, Show a, HasCallStack) => StateT st (ParsecT HledgerParseErrorData Text (ExceptT FinalParseError IO)) a -> Text -> String -> Assertion
assertParseStateOn :: (HasCallStack, Eq b, Show b, Default st) => StateT st (ParsecT HledgerParseErrorData Text IO) a -> Text -> (st -> b) -> b -> Assertion
assertRight :: (HasCallStack, Eq a, Show a) => Either a b -> Assertion
escapeBackslash :: Text -> Text
escapeDoubleQuotes :: Text -> Text
fitText :: Maybe Int -> Maybe Int -> Bool -> Bool -> Text -> Text
formatText :: Bool -> Maybe Int -> Maybe Int -> Text -> Text
linesPrepend :: Text -> Text -> Text
linesPrepend2 :: Text -> Text -> Text -> Text
quoteIfSpaced :: Text -> Text
readDecimal :: Text -> Integer
stripquotes :: Text -> Text
tests_Text :: TestTree
textCapitalise :: Text -> Text
textChomp :: Text -> Text
textConcatBottomPadded :: [Text] -> Text
textConcatTopPadded :: [Text] -> Text
textElideRight :: Int -> Text -> Text
textQuoteIfNeeded :: Text -> Text
textTakeWidth :: Int -> Text -> Text
textUnbracket :: Text -> Text
unlinesB :: [Builder] -> Builder
wrap :: Text -> Text -> Text -> Text
wbFromText :: Text -> WideBuilder
wbToText :: WideBuilder -> Text
wbUnpack :: WideBuilder -> String
initialPos :: FilePath -> SourcePos
mkPos :: Int -> Pos
sourcePosPretty :: SourcePos -> String
unPos :: Pos -> Int
callCommand :: String -> IO ()
callProcess :: FilePath -> [String] -> IO ()
cleanupProcess :: (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> IO ()
createProcess :: CreateProcess -> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)
getCurrentPid :: IO Pid
getPid :: ProcessHandle -> IO (Maybe Pid)
getProcessExitCode :: ProcessHandle -> IO (Maybe ExitCode)
proc :: FilePath -> [String] -> CreateProcess
rawSystem :: String -> [String] -> IO ExitCode
readCreateProcess :: CreateProcess -> String -> IO String
readCreateProcessWithExitCode :: CreateProcess -> String -> IO (ExitCode, String, String)
readProcess :: FilePath -> [String] -> String -> IO String
readProcessWithExitCode :: FilePath -> [String] -> String -> IO (ExitCode, String, String)
runCommand :: String -> IO ProcessHandle
runInteractiveCommand :: String -> IO (Handle, Handle, Handle, ProcessHandle)
runInteractiveProcess :: FilePath -> [String] -> Maybe FilePath -> Maybe [(String, String)] -> IO (Handle, Handle, Handle, ProcessHandle)
runProcess :: FilePath -> [String] -> Maybe FilePath -> Maybe [(String, String)] -> Maybe Handle -> Maybe Handle -> Maybe Handle -> IO ProcessHandle
shell :: String -> CreateProcess
showCommandForUser :: FilePath -> [String] -> String
spawnCommand :: String -> IO ProcessHandle
spawnProcess :: FilePath -> [String] -> IO ProcessHandle
system :: String -> IO ExitCode
terminateProcess :: ProcessHandle -> IO ()
waitForProcess :: ProcessHandle -> IO ExitCode
withCreateProcess :: CreateProcess -> (Maybe Handle -> Maybe Handle -> Maybe Handle -> ProcessHandle -> IO a) -> IO a
createPipe :: IO (Handle, Handle)
createPipeFd :: IO (FD, FD)
createProcess_ :: String -> CreateProcess -> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)
interruptProcessGroupOf :: ProcessHandle -> IO ()
abort :: Partial => String -> a
assertNote :: Partial => String -> Bool -> a -> a
atDef :: a -> [a] -> Int -> a
atMay :: [a] -> Int -> Maybe a
atNote :: Partial => String -> [a] -> Int -> a
cycleDef :: [a] -> [a] -> [a]
cycleMay :: [a] -> Maybe [a]
cycleNote :: Partial => String -> [a] -> [a]
elemIndexJust :: (Partial, Eq a) => a -> [a] -> Int
elemIndexJustDef :: Eq a => Int -> a -> [a] -> Int
elemIndexJustNote :: (Partial, Eq a) => String -> a -> [a] -> Int
findIndexJust :: (a -> Bool) -> [a] -> Int
findIndexJustDef :: Int -> (a -> Bool) -> [a] -> Int
findIndexJustNote :: Partial => String -> (a -> Bool) -> [a] -> Int
findJust :: (a -> Bool) -> [a] -> a
findJustDef :: a -> (a -> Bool) -> [a] -> a
findJustNote :: Partial => String -> (a -> Bool) -> [a] -> a
foldl1Def :: a -> (a -> a -> a) -> [a] -> a
foldl1Def' :: a -> (a -> a -> a) -> [a] -> a
foldl1May :: (a -> a -> a) -> [a] -> Maybe a
foldl1May' :: (a -> a -> a) -> [a] -> Maybe a
foldl1Note :: Partial => String -> (a -> a -> a) -> [a] -> a
foldl1Note' :: Partial => String -> (a -> a -> a) -> [a] -> a
foldr1Def :: a -> (a -> a -> a) -> [a] -> a
foldr1May :: (a -> a -> a) -> [a] -> Maybe a
foldr1Note :: Partial => String -> (a -> a -> a) -> [a] -> a
fromJustDef :: a -> Maybe a -> a
fromJustNote :: Partial => String -> Maybe a -> a
headDef :: a -> [a] -> a
headErr :: Partial => [a] -> a
headMay :: [a] -> Maybe a
headNote :: Partial => String -> [a] -> a
indexDef :: Ix a => Int -> (a, a) -> a -> Int
indexMay :: Ix a => (a, a) -> a -> Maybe Int
indexNote :: (Partial, Ix a) => String -> (a, a) -> a -> Int
initDef :: [a] -> [a] -> [a]
initMay :: [a] -> Maybe [a]
initNote :: Partial => String -> [a] -> [a]
initSafe :: [a] -> [a]
lastDef :: a -> [a] -> a
lastMay :: [a] -> Maybe a
lastNote :: Partial => String -> [a] -> a
lookupJust :: (Eq a, Partial) => a -> [(a, b)] -> b
lookupJustDef :: Eq a => b -> a -> [(a, b)] -> b
lookupJustNote :: (Partial, Eq a) => String -> a -> [(a, b)] -> b
maximumBound :: Ord a => a -> [a] -> a
maximumBoundBy :: a -> (a -> a -> Ordering) -> [a] -> a
maximumBounded :: (Ord a, Bounded a) => [a] -> a
maximumByDef :: a -> (a -> a -> Ordering) -> [a] -> a
maximumByMay :: (a -> a -> Ordering) -> [a] -> Maybe a
maximumByNote :: Partial => String -> (a -> a -> Ordering) -> [a] -> a
maximumDef :: Ord a => a -> [a] -> a
maximumMay :: Ord a => [a] -> Maybe a
maximumNote :: (Partial, Ord a) => String -> [a] -> a
minimumBound :: Ord a => a -> [a] -> a
minimumBoundBy :: a -> (a -> a -> Ordering) -> [a] -> a
minimumBounded :: (Ord a, Bounded a) => [a] -> a
minimumByDef :: a -> (a -> a -> Ordering) -> [a] -> a
minimumByMay :: (a -> a -> Ordering) -> [a] -> Maybe a
minimumByNote :: Partial => String -> (a -> a -> Ordering) -> [a] -> a
minimumDef :: Ord a => a -> [a] -> a
minimumMay :: Ord a => [a] -> Maybe a
minimumNote :: (Partial, Ord a) => String -> [a] -> a
predDef :: (Enum a, Eq a, Bounded a) => a -> a -> a
predMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a
predNote :: (Partial, Enum a, Eq a, Bounded a) => String -> a -> a
predSafe :: (Enum a, Eq a, Bounded a) => a -> a
readDef :: Read a => a -> String -> a
readEitherSafe :: Read a => String -> Either String a
readMay :: Read a => String -> Maybe a
readNote :: (Partial, Read a) => String -> String -> a
scanl1Def :: [a] -> (a -> a -> a) -> [a] -> [a]
scanl1May :: (a -> a -> a) -> [a] -> Maybe [a]
scanl1Note :: Partial => String -> (a -> a -> a) -> [a] -> [a]
scanr1Def :: [a] -> (a -> a -> a) -> [a] -> [a]
scanr1May :: (a -> a -> a) -> [a] -> Maybe [a]
scanr1Note :: Partial => String -> (a -> a -> a) -> [a] -> [a]
succDef :: (Enum a, Eq a, Bounded a) => a -> a -> a
succMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a
succNote :: (Partial, Enum a, Eq a, Bounded a) => String -> a -> a
succSafe :: (Enum a, Eq a, Bounded a) => a -> a
tailDef :: [a] -> [a] -> [a]
tailErr :: Partial => [a] -> [a]
tailMay :: [a] -> Maybe [a]
tailNote :: Partial => String -> [a] -> [a]
tailSafe :: [a] -> [a]
toEnumDef :: (Enum a, Bounded a) => a -> Int -> a
toEnumMay :: (Enum a, Bounded a) => Int -> Maybe a
toEnumNote :: (Partial, Enum a, Bounded a) => String -> Int -> a
toEnumSafe :: (Enum a, Bounded a) => Int -> a
adjustOption :: IsOption v => (v -> v) -> TestTree -> TestTree
askOption :: IsOption v => (v -> TestTree) -> TestTree
defaultIngredients :: [Ingredient]
localOption :: IsOption v => v -> TestTree -> TestTree
withResource :: IO a -> (a -> IO ()) -> (IO a -> TestTree) -> TestTree
defaultMainWithIngredients :: [Ingredient] -> TestTree -> IO ()
after :: DependencyType -> String -> TestTree -> TestTree
after_ :: DependencyType -> Expr -> TestTree -> TestTree
sequentialTestGroup :: TestName -> DependencyType -> [TestTree] -> TestTree
testGroup :: TestName -> [TestTree] -> TestTree
includingOptions :: [OptionDescription] -> Ingredient
mkTimeout :: Integer -> Timeout
testCase :: TestName -> Assertion -> TestTree
testCaseInfo :: TestName -> IO String -> TestTree
(@=?) :: (Eq a, Show a, HasCallStack) => a -> a -> Assertion
(@?) :: (AssertionPredicable t, HasCallStack) => t -> String -> Assertion
(@?=) :: (Eq a, Show a, HasCallStack) => a -> a -> Assertion
assertBool :: HasCallStack => String -> Bool -> Assertion
assertEqual :: (Eq a, Show a, HasCallStack) => String -> a -> a -> Assertion
assertFailure :: HasCallStack => String -> IO a
assertString :: HasCallStack => String -> Assertion
testCaseSteps :: TestName -> ((String -> IO ()) -> Assertion) -> TestTree
pack :: String -> Text
unpack :: Text -> String
calendarDay :: CalendarDiffDays
calendarMonth :: CalendarDiffDays
calendarWeek :: CalendarDiffDays
calendarYear :: CalendarDiffDays
scaleCalendarDiffDays :: Integer -> CalendarDiffDays -> CalendarDiffDays
addDays :: Integer -> Day -> Day
diffDays :: Day -> Day -> Integer
periodAllDays :: DayPeriod p => p -> [Day]
periodFromDay :: DayPeriod p => Day -> (p, Int)
periodLength :: DayPeriod p => p -> Int
periodToDay :: DayPeriod p => p -> Int -> Day
periodToDayValid :: DayPeriod p => p -> Int -> Maybe Day
pattern YearMonthDay :: Year -> MonthOfYear -> DayOfMonth -> Day
addGregorianDurationClip :: CalendarDiffDays -> Day -> Day
addGregorianDurationRollOver :: CalendarDiffDays -> Day -> Day
addGregorianMonthsClip :: Integer -> Day -> Day
addGregorianMonthsRollOver :: Integer -> Day -> Day
addGregorianYearsClip :: Integer -> Day -> Day
addGregorianYearsRollOver :: Integer -> Day -> Day
diffGregorianDurationClip :: Day -> Day -> CalendarDiffDays
diffGregorianDurationRollOver :: Day -> Day -> CalendarDiffDays
fromGregorian :: Year -> MonthOfYear -> DayOfMonth -> Day
fromGregorianValid :: Year -> MonthOfYear -> DayOfMonth -> Maybe Day
gregorianMonthLength :: Year -> MonthOfYear -> DayOfMonth
showGregorian :: Day -> String
toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth)
isLeapYear :: Year -> Bool
pattern April :: MonthOfYear
pattern August :: MonthOfYear
pattern BeforeCommonEra :: Integer -> Year
pattern CommonEra :: Integer -> Year
pattern December :: MonthOfYear
pattern February :: MonthOfYear
pattern January :: MonthOfYear
pattern July :: MonthOfYear
pattern June :: MonthOfYear
pattern March :: MonthOfYear
pattern May :: MonthOfYear
pattern November :: MonthOfYear
pattern October :: MonthOfYear
pattern September :: MonthOfYear
dayOfWeek :: Day -> DayOfWeek
dayOfWeekDiff :: DayOfWeek -> DayOfWeek -> Int
firstDayOfWeekOnAfter :: DayOfWeek -> Day -> Day
weekAllDays :: DayOfWeek -> Day -> [Day]
weekFirstDay :: DayOfWeek -> Day -> Day
weekLastDay :: DayOfWeek -> Day -> Day
diffTimeToPicoseconds :: DiffTime -> Integer
picosecondsToDiffTime :: Integer -> DiffTime
secondsToDiffTime :: Integer -> DiffTime
nominalDay :: NominalDiffTime
nominalDiffTimeToSeconds :: NominalDiffTime -> Pico
secondsToNominalDiffTime :: Pico -> NominalDiffTime
getTime_resolution :: DiffTime
addUTCTime :: NominalDiffTime -> UTCTime -> UTCTime
diffUTCTime :: UTCTime -> UTCTime -> NominalDiffTime
getCurrentTime :: IO UTCTime
formatTime :: FormatTime t => TimeLocale -> String -> t -> String
defaultTimeLocale :: TimeLocale
iso8601DateFormat :: Maybe String -> String
rfc822DateFormat :: String
parseTimeM :: (MonadFail m, ParseTime t) => Bool -> TimeLocale -> String -> String -> m t
parseTimeMultipleM :: (MonadFail m, ParseTime t) => Bool -> TimeLocale -> [(String, String)] -> m t
parseTimeOrError :: ParseTime t => Bool -> TimeLocale -> String -> String -> t
readPTime :: ParseTime t => Bool -> TimeLocale -> String -> ReadP t
readSTime :: ParseTime t => Bool -> TimeLocale -> String -> ReadS t
calendarTimeDays :: CalendarDiffDays -> CalendarDiffTime
calendarTimeTime :: NominalDiffTime -> CalendarDiffTime
scaleCalendarDiffTime :: Integer -> CalendarDiffTime -> CalendarDiffTime
addLocalTime :: NominalDiffTime -> LocalTime -> LocalTime
diffLocalTime :: LocalTime -> LocalTime -> NominalDiffTime
localTimeToUT1 :: Rational -> LocalTime -> UniversalTime
localTimeToUTC :: TimeZone -> LocalTime -> UTCTime
ut1ToLocalTime :: Rational -> UniversalTime -> LocalTime
utcToLocalTime :: TimeZone -> UTCTime -> LocalTime
dayFractionToTimeOfDay :: Rational -> TimeOfDay
daysAndTimeOfDayToTime :: Integer -> TimeOfDay -> NominalDiffTime
localToUTCTimeOfDay :: TimeZone -> TimeOfDay -> (Integer, TimeOfDay)
makeTimeOfDayValid :: Int -> Int -> Pico -> Maybe TimeOfDay
midday :: TimeOfDay
midnight :: TimeOfDay
pastMidnight :: DiffTime -> TimeOfDay
sinceMidnight :: TimeOfDay -> DiffTime
timeOfDayToDayFraction :: TimeOfDay -> Rational
timeOfDayToTime :: TimeOfDay -> DiffTime
timeToDaysAndTimeOfDay :: NominalDiffTime -> (Integer, TimeOfDay)
timeToTimeOfDay :: DiffTime -> TimeOfDay
utcToLocalTimeOfDay :: TimeZone -> TimeOfDay -> (Integer, TimeOfDay)
getCurrentTimeZone :: IO TimeZone
getTimeZone :: UTCTime -> IO TimeZone
hoursToTimeZone :: Int -> TimeZone
minutesToTimeZone :: Int -> TimeZone
timeZoneOffsetString :: TimeZone -> String
timeZoneOffsetString' :: Maybe Char -> TimeZone -> String
utc :: TimeZone
getZonedTime :: IO ZonedTime
utcToLocalZonedTime :: UTCTime -> IO ZonedTime
utcToZonedTime :: TimeZone -> UTCTime -> ZonedTime
zonedTimeToUTC :: ZonedTime -> UTCTime
runExceptT :: ExceptT e m a -> m (Either e a)
newtype WrappedArrow (a :: Type -> Type -> Type) b c
WrapArrow :: a b c -> WrappedArrow (a :: Type -> Type -> Type) b c
[unwrapArrow] :: WrappedArrow (a :: Type -> Type -> Type) b c -> a b c
newtype WrappedMonad (m :: Type -> Type) a
WrapMonad :: m a -> WrappedMonad (m :: Type -> Type) a
[unwrapMonad] :: WrappedMonad (m :: Type -> Type) a -> m a
data Chan a
data QSem
data QSemN
data FieldFormat
FieldFormat :: Maybe Int -> Maybe Int -> Maybe FormatAdjustment -> Maybe FormatSign -> Bool -> String -> Char -> FieldFormat
[fmtWidth] :: FieldFormat -> Maybe Int
[fmtPrecision] :: FieldFormat -> Maybe Int
[fmtAdjust] :: FieldFormat -> Maybe FormatAdjustment
[fmtSign] :: FieldFormat -> Maybe FormatSign
[fmtAlternate] :: FieldFormat -> Bool
[fmtModifiers] :: FieldFormat -> String
[fmtChar] :: FieldFormat -> Char
type FieldFormatter = FieldFormat -> ShowS
data FormatAdjustment
LeftAdjust :: FormatAdjustment
ZeroPad :: FormatAdjustment
data FormatParse
FormatParse :: String -> Char -> String -> FormatParse
[fpModifiers] :: FormatParse -> String
[fpChar] :: FormatParse -> Char
[fpRest] :: FormatParse -> String
data FormatSign
SignPlus :: FormatSign
SignSpace :: FormatSign
class HPrintfType t
class IsChar c
toChar :: IsChar c => c -> Char
fromChar :: IsChar c => Char -> c
type ModifierParser = String -> FormatParse
class PrintfArg a
formatArg :: PrintfArg a => a -> FieldFormatter
parseFormat :: PrintfArg a => a -> ModifierParser
class PrintfType t
data Complete
CompleteValue :: String -> Complete
CompleteFile :: String -> FilePath -> Complete
CompleteDir :: String -> FilePath -> Complete
data HelpFormat
HelpFormatDefault :: HelpFormat
HelpFormatOne :: HelpFormat
HelpFormatAll :: HelpFormat
HelpFormatBash :: HelpFormat
HelpFormatZsh :: HelpFormat
data Arg a
Arg :: Update a -> FlagHelp -> Bool -> Arg a
[argValue] :: Arg a -> Update a
[argType] :: Arg a -> FlagHelp
[argRequire] :: Arg a -> Bool
data Flag a
Flag :: [Name] -> FlagInfo -> Update a -> FlagHelp -> Help -> Flag a
[flagNames] :: Flag a -> [Name]
[flagInfo] :: Flag a -> FlagInfo
[flagValue] :: Flag a -> Update a
[flagType] :: Flag a -> FlagHelp
[flagHelp] :: Flag a -> Help
type FlagHelp = String
data FlagInfo
FlagReq :: FlagInfo
FlagOpt :: String -> FlagInfo
FlagOptRare :: String -> FlagInfo
FlagNone :: FlagInfo
data Group a
Group :: [a] -> [a] -> [(Help, [a])] -> Group a
[groupUnnamed] :: Group a -> [a]
[groupHidden] :: Group a -> [a]
[groupNamed] :: Group a -> [(Help, [a])]
type Help = String
data Mode a
Mode :: Group (Mode a) -> [Name] -> a -> (a -> Either String a) -> (a -> Maybe [String]) -> Bool -> Help -> [String] -> ([Arg a], Maybe (Arg a)) -> Group (Flag a) -> Mode a
[modeGroupModes] :: Mode a -> Group (Mode a)
[modeNames] :: Mode a -> [Name]
[modeValue] :: Mode a -> a
[modeCheck] :: Mode a -> a -> Either String a
[modeReform] :: Mode a -> a -> Maybe [String]
[modeExpandAt] :: Mode a -> Bool
[modeHelp] :: Mode a -> Help
[modeHelpSuffix] :: Mode a -> [String]
[modeArgs] :: Mode a -> ([Arg a], Maybe (Arg a))
[modeGroupFlags] :: Mode a -> Group (Flag a)
type Name = String
class Remap (m :: Type -> Type)
remap :: Remap m => (a -> b) -> (b -> (a, a -> b)) -> m a -> m b
type Update a = String -> a -> Either String a
data Permissions
data XdgDirectory
XdgData :: XdgDirectory
XdgConfig :: XdgDirectory
XdgCache :: XdgDirectory
XdgState :: XdgDirectory
data XdgDirectoryList
XdgDataDirs :: XdgDirectoryList
XdgConfigDirs :: XdgDirectoryList
class Applicative f => Alternative (f :: Type -> Type)
empty :: Alternative f => f a
(<|>) :: Alternative f => f a -> f a -> f a
some :: Alternative f => f a -> f [a]
many :: Alternative f => f a -> f [a]
class Functor f => Applicative (f :: Type -> Type)
pure :: Applicative f => a -> f a
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
(*>) :: Applicative f => f a -> f b -> f b
(<*) :: Applicative f => f a -> f b -> f a
class Functor (f :: Type -> Type)
fmap :: Functor f => (a -> b) -> f a -> f b
(<$) :: Functor f => a -> f b -> f a
class Applicative m => Monad (m :: Type -> Type)
(>>=) :: Monad m => m a -> (a -> m b) -> m b
(>>) :: Monad m => m a -> m b -> m b
return :: Monad m => a -> m a
class (Alternative m, Monad m) => MonadPlus (m :: Type -> Type)
mzero :: MonadPlus m => m a
mplus :: MonadPlus m => m a -> m a -> m a
data ThreadId
class Monad m => MonadFail (m :: Type -> Type)
fail :: MonadFail m => String -> m a
data Either a b
Left :: a -> Either a b
Right :: b -> Either a b
elem :: (Foldable t, Eq a) => a -> t a -> Bool
foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
foldl' :: Foldable t => (b -> a -> b) -> b -> t a -> b
foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
length :: Foldable t => t a -> Int
maximum :: (Foldable t, Ord a) => t a -> a
minimum :: (Foldable t, Ord a) => t a -> a
null :: Foldable t => t a -> Bool
product :: (Foldable t, Num a) => t a -> a
sum :: (Foldable t, Num a) => t a -> a
newtype Const a (b :: k)
Const :: a -> Const a (b :: k)
[getConst] :: Const a (b :: k) -> a
newtype Down a
Down :: a -> Down a
[getDown] :: Down a -> a
mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
newtype ZipList a
ZipList :: [a] -> ZipList a
[getZipList] :: ZipList a -> [a]
type FilePath = String
data SeekMode
AbsoluteSeek :: SeekMode
RelativeSeek :: SeekMode
SeekFromEnd :: SeekMode
data TextEncoding
data ExitCode
ExitSuccess :: ExitCode
ExitFailure :: Int -> ExitCode
type IOError = IOException
data IOErrorType
data HandlePosn
data BufferMode
NoBuffering :: BufferMode
LineBuffering :: BufferMode
BlockBuffering :: Maybe Int -> BufferMode
data Handle
data Newline
LF :: Newline
CRLF :: Newline
data NewlineMode
NewlineMode :: Newline -> Newline -> NewlineMode
[inputNL] :: NewlineMode -> Newline
[outputNL] :: NewlineMode -> Newline
data IOMode
ReadMode :: IOMode
WriteMode :: IOMode
AppendMode :: IOMode
ReadWriteMode :: IOMode
data MVar a
type HasCallStack = ?callStack :: CallStack
data GeneralCategory
UppercaseLetter :: GeneralCategory
LowercaseLetter :: GeneralCategory
TitlecaseLetter :: GeneralCategory
ModifierLetter :: GeneralCategory
OtherLetter :: GeneralCategory
NonSpacingMark :: GeneralCategory
SpacingCombiningMark :: GeneralCategory
EnclosingMark :: GeneralCategory
DecimalNumber :: GeneralCategory
LetterNumber :: GeneralCategory
OtherNumber :: GeneralCategory
ConnectorPunctuation :: GeneralCategory
DashPunctuation :: GeneralCategory
OpenPunctuation :: GeneralCategory
ClosePunctuation :: GeneralCategory
InitialQuote :: GeneralCategory
FinalQuote :: GeneralCategory
OtherPunctuation :: GeneralCategory
MathSymbol :: GeneralCategory
CurrencySymbol :: GeneralCategory
ModifierSymbol :: GeneralCategory
OtherSymbol :: GeneralCategory
Space :: GeneralCategory
LineSeparator :: GeneralCategory
ParagraphSeparator :: GeneralCategory
Control :: GeneralCategory
Format :: GeneralCategory
Surrogate :: GeneralCategory
PrivateUse :: GeneralCategory
NotAssigned :: GeneralCategory
class Eq a => Ord a
compare :: Ord a => a -> a -> Ordering
(<) :: Ord a => a -> a -> Bool
(<=) :: Ord a => a -> a -> Bool
(>) :: Ord a => a -> a -> Bool
(>=) :: Ord a => a -> a -> Bool
max :: Ord a => a -> a -> a
min :: Ord a => a -> a -> a
data IO a
data Ordering
LT :: Ordering
EQ :: Ordering
GT :: Ordering
data AmountFormat
AmountFormat :: Bool -> Bool -> Maybe [CommoditySymbol] -> Bool -> Bool -> Bool -> Maybe Int -> Maybe Int -> Bool -> Bool -> Bool -> AmountFormat
[displayCommodity] :: AmountFormat -> Bool
[displayZeroCommodity] :: AmountFormat -> Bool
[displayCommodityOrder] :: AmountFormat -> Maybe [CommoditySymbol]
[displayDigitGroups] :: AmountFormat -> Bool
[displayForceDecimalMark] :: AmountFormat -> Bool
[displayOneLine] :: AmountFormat -> Bool
[displayMinWidth] :: AmountFormat -> Maybe Int
[displayMaxWidth] :: AmountFormat -> Maybe Int
[displayCost] :: AmountFormat -> Bool
[displayColour] :: AmountFormat -> Bool
[displayQuotes] :: AmountFormat -> Bool
data BalancingOpts
BalancingOpts :: Bool -> Bool -> Maybe (Map CommoditySymbol AmountStyle) -> TransactionBalancingPrecision -> BalancingOpts
[ignore_assertions_] :: BalancingOpts -> Bool
[infer_balancing_costs_] :: BalancingOpts -> Bool
[commodity_styles_] :: BalancingOpts -> Maybe (Map CommoditySymbol AmountStyle)
[txn_balancing_] :: BalancingOpts -> TransactionBalancingPrecision
class HasBalancingOpts c
balancingOpts :: HasBalancingOpts c => Lens' c BalancingOpts
commodity_styles :: HasBalancingOpts c => Lens' c (Maybe (Map CommoditySymbol AmountStyle))
ignore_assertions :: HasBalancingOpts c => Lens' c Bool
infer_balancing_costs :: HasBalancingOpts c => Lens' c Bool
txn_balancing :: HasBalancingOpts c => Lens' c TransactionBalancingPrecision
data DayPartition
type ErroringJournalParser (m :: Type -> Type) a = StateT Journal ParsecT HledgerParseErrorData Text ExceptT FinalParseError m a
type JournalParser (m :: Type -> Type) a = StateT Journal ParsecT HledgerParseErrorData Text m a
data RawOpts
data ReportItemField
AccountField :: ReportItemField
DefaultDateField :: ReportItemField
DescriptionField :: ReportItemField
TotalField :: ReportItemField
DepthSpacerField :: ReportItemField
FieldNo :: Int -> ReportItemField
data StringFormat
OneLine :: [StringFormatComponent] -> StringFormat
TopAligned :: [StringFormatComponent] -> StringFormat
BottomAligned :: [StringFormatComponent] -> StringFormat
data StringFormatComponent
FormatLiteral :: Text -> StringFormatComponent
FormatField :: Bool -> Maybe Int -> Maybe Int -> ReportItemField -> StringFormatComponent
data TransactionBalancingPrecision
TBPOld :: TransactionBalancingPrecision
TBPExact :: TransactionBalancingPrecision
data Account a
Account :: AccountName -> Maybe AccountDeclarationInfo -> [Account a] -> Maybe (Account a) -> Bool -> PeriodData a -> Account a
[aname] :: Account a -> AccountName
[adeclarationinfo] :: Account a -> Maybe AccountDeclarationInfo
[asubs] :: Account a -> [Account a]
[aparent] :: Account a -> Maybe (Account a)
[aboring] :: Account a -> Bool
[adata] :: Account a -> PeriodData a
data AccountAlias
BasicAlias :: AccountName -> AccountName -> AccountAlias
RegexAlias :: Regexp -> Replacement -> AccountAlias
data AccountDeclarationInfo
AccountDeclarationInfo :: Text -> [Tag] -> Int -> SourcePos -> AccountDeclarationInfo
[adicomment] :: AccountDeclarationInfo -> Text
[aditags] :: AccountDeclarationInfo -> [Tag]
[adideclarationorder] :: AccountDeclarationInfo -> Int
[adisourcepos] :: AccountDeclarationInfo -> SourcePos
type AccountName = Text
data AccountType
Asset :: AccountType
Liability :: AccountType
Equity :: AccountType
Revenue :: AccountType
Expense :: AccountType
Cash :: AccountType
Conversion :: AccountType
data Amount
Amount :: !CommoditySymbol -> !Quantity -> !AmountStyle -> !Maybe AmountCost -> Amount
[acommodity] :: Amount -> !CommoditySymbol
[aquantity] :: Amount -> !Quantity
[astyle] :: Amount -> !AmountStyle
[acost] :: Amount -> !Maybe AmountCost
data AmountCost
UnitCost :: !Amount -> AmountCost
TotalCost :: !Amount -> AmountCost
data AmountPrecision
Precision :: !Word8 -> AmountPrecision
NaturalPrecision :: AmountPrecision
data AmountStyle
AmountStyle :: !Side -> !Bool -> !Maybe DigitGroupStyle -> !Maybe Char -> !AmountPrecision -> !Rounding -> AmountStyle
[ascommodityside] :: AmountStyle -> !Side
[ascommodityspaced] :: AmountStyle -> !Bool
[asdigitgroups] :: AmountStyle -> !Maybe DigitGroupStyle
[asdecimalmark] :: AmountStyle -> !Maybe Char
[asprecision] :: AmountStyle -> !AmountPrecision
[asrounding] :: AmountStyle -> !Rounding
data BalanceAssertion
BalanceAssertion :: Amount -> Bool -> Bool -> SourcePos -> BalanceAssertion
[baamount] :: BalanceAssertion -> Amount
[batotal] :: BalanceAssertion -> Bool
[bainclusive] :: BalanceAssertion -> Bool
[baposition] :: BalanceAssertion -> SourcePos
data BalanceData
BalanceData :: MixedAmount -> MixedAmount -> Int -> BalanceData
[bdexcludingsubs] :: BalanceData -> MixedAmount
[bdincludingsubs] :: BalanceData -> MixedAmount
[bdnumpostings] :: BalanceData -> Int
data Commodity
Commodity :: CommoditySymbol -> Maybe AmountStyle -> Commodity
[csymbol] :: Commodity -> CommoditySymbol
[cformat] :: Commodity -> Maybe AmountStyle
type CommoditySymbol = Text
data DateSpan
DateSpan :: Maybe EFDay -> Maybe EFDay -> DateSpan
type DateTag = (TagName, Day)
type DecimalMark = Char
data DepthSpec
DepthSpec :: Maybe Int -> [(Regexp, Int)] -> DepthSpec
[dsFlatDepth] :: DepthSpec -> Maybe Int
[dsRegexpDepths] :: DepthSpec -> [(Regexp, Int)]
data DigitGroupStyle
DigitGroups :: !Char -> ![Word8] -> DigitGroupStyle
data EFDay
Exact :: Day -> EFDay
Flex :: Day -> EFDay
class HasAmounts a
styleAmounts :: HasAmounts a => Map CommoditySymbol AmountStyle -> a -> a
type HiddenTag = Tag
data Interval
NoInterval :: Interval
Days :: Int -> Interval
Weeks :: Int -> Interval
Months :: Int -> Interval
Quarters :: Int -> Interval
Years :: Int -> Interval
NthWeekdayOfMonth :: Int -> Int -> Interval
MonthDay :: Int -> Interval
MonthAndDay :: Int -> Int -> Interval
DaysOfWeek :: [Int] -> Interval
data Journal
Journal :: Maybe Year -> Maybe (CommoditySymbol, AmountStyle) -> Maybe DecimalMark -> [AccountName] -> [AccountAlias] -> [TimeclockEntry] -> [FilePath] -> [(Payee, PayeeDeclarationInfo)] -> [(TagName, TagDeclarationInfo)] -> [(AccountName, AccountDeclarationInfo)] -> Map AccountName [Tag] -> Map AccountType [AccountName] -> Map AccountName AccountType -> Map CommoditySymbol Commodity -> Map CommoditySymbol AmountStyle -> Map CommoditySymbol AmountStyle -> [PriceDirective] -> [MarketPrice] -> [TransactionModifier] -> [PeriodicTransaction] -> [Transaction] -> Text -> [(FilePath, Text)] -> POSIXTime -> Journal
[jparsedefaultyear] :: Journal -> Maybe Year
[jparsedefaultcommodity] :: Journal -> Maybe (CommoditySymbol, AmountStyle)
[jparsedecimalmark] :: Journal -> Maybe DecimalMark
[jparseparentaccounts] :: Journal -> [AccountName]
[jparsealiases] :: Journal -> [AccountAlias]
[jparsetimeclockentries] :: Journal -> [TimeclockEntry]
[jincludefilestack] :: Journal -> [FilePath]
[jdeclaredpayees] :: Journal -> [(Payee, PayeeDeclarationInfo)]
[jdeclaredtags] :: Journal -> [(TagName, TagDeclarationInfo)]
[jdeclaredaccounts] :: Journal -> [(AccountName, AccountDeclarationInfo)]
[jdeclaredaccounttags] :: Journal -> Map AccountName [Tag]
[jdeclaredaccounttypes] :: Journal -> Map AccountType [AccountName]
[jaccounttypes] :: Journal -> Map AccountName AccountType
[jdeclaredcommodities] :: Journal -> Map CommoditySymbol Commodity
[jinferredcommoditystyles] :: Journal -> Map CommoditySymbol AmountStyle
[jglobalcommoditystyles] :: Journal -> Map CommoditySymbol AmountStyle
[jpricedirectives] :: Journal -> [PriceDirective]
[jinferredmarketprices] :: Journal -> [MarketPrice]
[jtxnmodifiers] :: Journal -> [TransactionModifier]
[jperiodictxns] :: Journal -> [PeriodicTransaction]
[jtxns] :: Journal -> [Transaction]
[jfinalcommentlines] :: Journal -> Text
[jfiles] :: Journal -> [(FilePath, Text)]
[jlastreadtime] :: Journal -> POSIXTime
data Ledger
Ledger :: Journal -> [Account BalanceData] -> Ledger
[ljournal] :: Ledger -> Journal
[laccounts] :: Ledger -> [Account BalanceData]
data MarketPrice
MarketPrice :: Day -> CommoditySymbol -> CommoditySymbol -> Quantity -> MarketPrice
[mpdate] :: MarketPrice -> Day
[mpfrom] :: MarketPrice -> CommoditySymbol
[mpto] :: MarketPrice -> CommoditySymbol
[mprate] :: MarketPrice -> Quantity
data MixedAmount
pattern MixedAmountKeyNoCost :: () => !CommoditySymbol -> MixedAmountKey
pattern MixedAmountKeyTotalCost :: () => !CommoditySymbol -> !CommoditySymbol -> MixedAmountKey
pattern MixedAmountKeyUnitCost :: () => !CommoditySymbol -> !CommoditySymbol -> !Quantity -> MixedAmountKey
type Month = Int
type MonthDay = Int
type MonthWeek = Int
data NormalSign
NormallyPositive :: NormalSign
NormallyNegative :: NormalSign
type ParsedJournal = Journal
type Payee = Text
data PayeeDeclarationInfo
PayeeDeclarationInfo :: Text -> [Tag] -> PayeeDeclarationInfo
[pdicomment] :: PayeeDeclarationInfo -> Text
[pditags] :: PayeeDeclarationInfo -> [Tag]
data Period
DayPeriod :: Day -> Period
WeekPeriod :: Day -> Period
MonthPeriod :: Year -> Month -> Period
QuarterPeriod :: Year -> Quarter -> Period
YearPeriod :: Year -> Period
PeriodBetween :: Day -> Day -> Period
PeriodFrom :: Day -> Period
PeriodTo :: Day -> Period
PeriodAll :: Period
data PeriodData a
PeriodData :: a -> Map Day a -> PeriodData a
[pdpre] :: PeriodData a -> a
[pdperiods] :: PeriodData a -> Map Day a
data PeriodicTransaction
PeriodicTransaction :: Text -> Interval -> DateSpan -> (SourcePos, SourcePos) -> Status -> Text -> Text -> Text -> [Tag] -> [Posting] -> PeriodicTransaction
[ptperiodexpr] :: PeriodicTransaction -> Text
[ptinterval] :: PeriodicTransaction -> Interval
[ptspan] :: PeriodicTransaction -> DateSpan
[ptsourcepos] :: PeriodicTransaction -> (SourcePos, SourcePos)
[ptstatus] :: PeriodicTransaction -> Status
[ptcode] :: PeriodicTransaction -> Text
[ptdescription] :: PeriodicTransaction -> Text
[ptcomment] :: PeriodicTransaction -> Text
[pttags] :: PeriodicTransaction -> [Tag]
[ptpostings] :: PeriodicTransaction -> [Posting]
data Posting
Posting :: Maybe Day -> Maybe Day -> Status -> AccountName -> MixedAmount -> Text -> PostingType -> [Tag] -> Maybe BalanceAssertion -> Maybe Transaction -> Maybe Posting -> Posting
[pdate] :: Posting -> Maybe Day
[pdate2] :: Posting -> Maybe Day
[pstatus] :: Posting -> Status
[paccount] :: Posting -> AccountName
[pamount] :: Posting -> MixedAmount
[pcomment] :: Posting -> Text
[ptype] :: Posting -> PostingType
[ptags] :: Posting -> [Tag]
[pbalanceassertion] :: Posting -> Maybe BalanceAssertion
[ptransaction] :: Posting -> Maybe Transaction
[poriginal] :: Posting -> Maybe Posting
data PostingType
RegularPosting :: PostingType
VirtualPosting :: PostingType
BalancedVirtualPosting :: PostingType
data PriceDirective
PriceDirective :: SourcePos -> Day -> CommoditySymbol -> Amount -> PriceDirective
[pdsourcepos] :: PriceDirective -> SourcePos
[pddate] :: PriceDirective -> Day
[pdcommodity] :: PriceDirective -> CommoditySymbol
[pdamount] :: PriceDirective -> Amount
type Quantity = Decimal
type Quarter = Int
data Rounding
NoRounding :: Rounding
SoftRounding :: Rounding
HardRounding :: Rounding
AllRounding :: Rounding
data SepFormat
Csv :: SepFormat
Tsv :: SepFormat
Ssv :: SepFormat
data Side
L :: Side
R :: Side
data SmartDate
SmartCompleteDate :: Day -> SmartDate
SmartAssumeStart :: Year -> Maybe Month -> SmartDate
SmartFromReference :: Maybe Month -> MonthDay -> SmartDate
SmartMonth :: Month -> SmartDate
SmartRelative :: Integer -> SmartInterval -> SmartDate
data SmartInterval
Day :: SmartInterval
Week :: SmartInterval
Month :: SmartInterval
Quarter :: SmartInterval
Year :: SmartInterval
data Status
Unmarked :: Status
Pending :: Status
Cleared :: Status
data StorageFormat
Rules :: StorageFormat
Journal' :: StorageFormat
Ledger' :: StorageFormat
Timeclock :: StorageFormat
Timedot :: StorageFormat
Sep :: SepFormat -> StorageFormat
data TMPostingRule
TMPostingRule :: Posting -> Bool -> TMPostingRule
[tmprPosting] :: TMPostingRule -> Posting
[tmprIsMultiplier] :: TMPostingRule -> Bool
type Tag = (TagName, TagValue)
newtype TagDeclarationInfo
TagDeclarationInfo :: Text -> TagDeclarationInfo
[tdicomment] :: TagDeclarationInfo -> Text
type TagName = Text
type TagValue = Text
data TimeclockCode
SetBalance :: TimeclockCode
SetRequiredHours :: TimeclockCode
In :: TimeclockCode
Out :: TimeclockCode
FinalOut :: TimeclockCode
data TimeclockEntry
TimeclockEntry :: SourcePos -> TimeclockCode -> LocalTime -> AccountName -> Text -> Text -> [Tag] -> TimeclockEntry
[tlsourcepos] :: TimeclockEntry -> SourcePos
[tlcode] :: TimeclockEntry -> TimeclockCode
[tldatetime] :: TimeclockEntry -> LocalTime
[tlaccount] :: TimeclockEntry -> AccountName
[tldescription] :: TimeclockEntry -> Text
[tlcomment] :: TimeclockEntry -> Text
[tltags] :: TimeclockEntry -> [Tag]
data Transaction
Transaction :: Integer -> Text -> (SourcePos, SourcePos) -> Day -> Maybe Day -> Status -> Text -> Text -> Text -> [Tag] -> [Posting] -> Transaction
[tindex] :: Transaction -> Integer
[tprecedingcomment] :: Transaction -> Text
[tsourcepos] :: Transaction -> (SourcePos, SourcePos)
[tdate] :: Transaction -> Day
[tdate2] :: Transaction -> Maybe Day
[tstatus] :: Transaction -> Status
[tcode] :: Transaction -> Text
[tdescription] :: Transaction -> Text
[tcomment] :: Transaction -> Text
[ttags] :: Transaction -> [Tag]
[tpostings] :: Transaction -> [Posting]
data TransactionModifier
TransactionModifier :: Text -> [TMPostingRule] -> TransactionModifier
[tmquerytxt] :: TransactionModifier -> Text
[tmpostingrules] :: TransactionModifier -> [TMPostingRule]
type WeekDay = Int
data WhichDate
PrimaryDate :: WhichDate
SecondaryDate :: WhichDate
type YearDay = Int
type YearWeek = Int
data ConversionOp
NoConversionOp :: ConversionOp
ToCost :: ConversionOp
type PriceOracle = (Day, CommoditySymbol, Maybe CommoditySymbol) -> Maybe (CommoditySymbol, Quantity)
data ValuationType
AtThen :: Maybe CommoditySymbol -> ValuationType
AtEnd :: Maybe CommoditySymbol -> ValuationType
AtNow :: Maybe CommoditySymbol -> ValuationType
AtDate :: Day -> Maybe CommoditySymbol -> ValuationType
data OrdPlus
Lt :: OrdPlus
LtEq :: OrdPlus
Gt :: OrdPlus
GtEq :: OrdPlus
Eq :: OrdPlus
AbsLt :: OrdPlus
AbsLtEq :: OrdPlus
AbsGt :: OrdPlus
AbsGtEq :: OrdPlus
AbsEq :: OrdPlus
data Query
Any :: Query
None :: Query
Date :: DateSpan -> Query
Date2 :: DateSpan -> Query
StatusQ :: Status -> Query
Code :: Regexp -> Query
Desc :: Regexp -> Query
Tag :: Regexp -> Maybe Regexp -> Query
Acct :: Regexp -> Query
Type :: [AccountType] -> Query
Depth :: Int -> Query
DepthAcct :: Regexp -> Int -> Query
Real :: Bool -> Query
Amt :: OrdPlus -> Quantity -> Query
Sym :: Regexp -> Query
Not :: Query -> Query
And :: [Query] -> Query
Or :: [Query] -> Query
AnyPosting :: [Query] -> Query
AllPostings :: [Query] -> Query
data QueryOpt
QueryOptInAcctOnly :: AccountName -> QueryOpt
QueryOptInAcct :: AccountName -> QueryOpt
type PrefixedFilePath = FilePath
data Reader (m :: Type -> Type)
Reader :: StorageFormat -> [String] -> (InputOpts -> FilePath -> Handle -> ExceptT String IO Journal) -> (MonadIO m => InputOpts -> ErroringJournalParser m ParsedJournal) -> Reader (m :: Type -> Type)
[rFormat] :: Reader (m :: Type -> Type) -> StorageFormat
[rExtensions] :: Reader (m :: Type -> Type) -> [String]
[rReadFn] :: Reader (m :: Type -> Type) -> InputOpts -> FilePath -> Handle -> ExceptT String IO Journal
[rParser] :: Reader (m :: Type -> Type) -> MonadIO m => InputOpts -> ErroringJournalParser m ParsedJournal
class HasInputOpts c
inputOpts :: HasInputOpts c => Lens' c InputOpts
aliases :: HasInputOpts c => Lens' c [String]
anon__ :: HasInputOpts c => Lens' c Bool
auto__ :: HasInputOpts c => Lens' c Bool
balancingopts :: HasInputOpts c => Lens' c BalancingOpts
defer :: HasInputOpts c => Lens' c Bool
forecast :: HasInputOpts c => Lens' c (Maybe DateSpan)
infer_costs :: HasInputOpts c => Lens' c Bool
infer_equity :: HasInputOpts c => Lens' c Bool
ioDay :: HasInputOpts c => Lens' c Day
mformat :: HasInputOpts c => Lens' c (Maybe StorageFormat)
mrules_file :: HasInputOpts c => Lens' c (Maybe FilePath)
new__ :: HasInputOpts c => Lens' c Bool
new_save :: HasInputOpts c => Lens' c Bool
oldtimeclock :: HasInputOpts c => Lens' c Bool
pivot :: HasInputOpts c => Lens' c String
posting_account_tags :: HasInputOpts c => Lens' c Bool
reportspan :: HasInputOpts c => Lens' c DateSpan
strict :: HasInputOpts c => Lens' c Bool
verbose_tags :: HasInputOpts c => Lens' c Bool
data InputOpts
InputOpts :: Maybe StorageFormat -> Maybe FilePath -> [String] -> Bool -> Bool -> Bool -> String -> Maybe DateSpan -> Bool -> Bool -> DateSpan -> Bool -> Bool -> Bool -> BalancingOpts -> Bool -> Bool -> Day -> Bool -> InputOpts
[mformat_] :: InputOpts -> Maybe StorageFormat
[mrules_file_] :: InputOpts -> Maybe FilePath
[aliases_] :: InputOpts -> [String]
[anon_] :: InputOpts -> Bool
[new_] :: InputOpts -> Bool
[new_save_] :: InputOpts -> Bool
[pivot_] :: InputOpts -> String
[forecast_] :: InputOpts -> Maybe DateSpan
[posting_account_tags_] :: InputOpts -> Bool
[verbose_tags_] :: InputOpts -> Bool
[reportspan_] :: InputOpts -> DateSpan
[auto_] :: InputOpts -> Bool
[infer_equity_] :: InputOpts -> Bool
[infer_costs_] :: InputOpts -> Bool
[balancingopts_] :: InputOpts -> BalancingOpts
[strict_] :: InputOpts -> Bool
[_defer] :: InputOpts -> Bool
[_ioDay] :: InputOpts -> Day
[_oldtimeclock] :: InputOpts -> Bool
type AccountTransactionsReport = [AccountTransactionsReportItem]
type AccountTransactionsReportItem = (Transaction, Transaction, Bool, [AccountName], MixedAmount, MixedAmount)
type BalanceReport = ([BalanceReportItem], MixedAmount)
type BalanceReportItem = (AccountName, AccountName, Int, MixedAmount)
type BudgetAverage = Average
type BudgetCell = (Maybe Change, Maybe BudgetGoal)
type BudgetGoal = Change
type BudgetReport = PeriodicReport DisplayName BudgetCell
type BudgetReportRow = PeriodicReportRow DisplayName BudgetCell
type BudgetTotal = Total
type EntriesReport = [EntriesReportItem]
type EntriesReportItem = Transaction
type MultiBalanceReport = PeriodicReport DisplayName MixedAmount
type MultiBalanceReportRow = PeriodicReportRow DisplayName MixedAmount
type PostingsReport = [PostingsReportItem]
type PostingsReportItem = (Maybe Day, Maybe Period, Maybe Text, Posting, MixedAmount)
data AccountListMode
ALFlat :: AccountListMode
ALTree :: AccountListMode
data BalanceAccumulation
PerPeriod :: BalanceAccumulation
Cumulative :: BalanceAccumulation
Historical :: BalanceAccumulation
data BalanceCalculation
CalcChange :: BalanceCalculation
CalcBudget :: BalanceCalculation
CalcValueChange :: BalanceCalculation
CalcGain :: BalanceCalculation
CalcPostingsCount :: BalanceCalculation
class HasReportOptsNoUpdate a => HasReportOpts a
reportOpts :: HasReportOpts a => ReportableLens' a ReportOpts
period :: HasReportOpts a => ReportableLens' a Period
statuses :: HasReportOpts a => ReportableLens' a [Status]
depth :: HasReportOpts a => ReportableLens' a DepthSpec
date2 :: HasReportOpts a => ReportableLens' a Bool
real :: HasReportOpts a => ReportableLens' a Bool
querystring :: HasReportOpts a => ReportableLens' a [Text]
class HasReportOptsNoUpdate c
reportOptsNoUpdate :: HasReportOptsNoUpdate c => Lens' c ReportOpts
accountlistmode :: HasReportOptsNoUpdate c => Lens' c AccountListMode
average :: HasReportOptsNoUpdate c => Lens' c Bool
balance_base_url :: HasReportOptsNoUpdate c => Lens' c (Maybe Text)
balanceaccum :: HasReportOptsNoUpdate c => Lens' c BalanceAccumulation
balancecalc :: HasReportOptsNoUpdate c => Lens' c BalanceCalculation
budgetpat :: HasReportOptsNoUpdate c => Lens' c (Maybe Text)
color__ :: HasReportOptsNoUpdate c => Lens' c Bool
conversionop :: HasReportOptsNoUpdate c => Lens' c (Maybe ConversionOp)
date2NoUpdate :: HasReportOptsNoUpdate c => Lens' c Bool
declared :: HasReportOptsNoUpdate c => Lens' c Bool
depthNoUpdate :: HasReportOptsNoUpdate c => Lens' c DepthSpec
drop__ :: HasReportOptsNoUpdate c => Lens' c Int
empty__ :: HasReportOptsNoUpdate c => Lens' c Bool
format :: HasReportOptsNoUpdate c => Lens' c StringFormat
infer_prices :: HasReportOptsNoUpdate c => Lens' c Bool
interval :: HasReportOptsNoUpdate c => Lens' c Interval
invert :: HasReportOptsNoUpdate c => Lens' c Bool
layout :: HasReportOptsNoUpdate c => Lens' c Layout
no_elide :: HasReportOptsNoUpdate c => Lens' c Bool
no_total :: HasReportOptsNoUpdate c => Lens' c Bool
normalbalance :: HasReportOptsNoUpdate c => Lens' c (Maybe NormalSign)
percent :: HasReportOptsNoUpdate c => Lens' c Bool
periodNoUpdate :: HasReportOptsNoUpdate c => Lens' c Period
pretty :: HasReportOptsNoUpdate c => Lens' c Bool
querystringNoUpdate :: HasReportOptsNoUpdate c => Lens' c [Text]
realNoUpdate :: HasReportOptsNoUpdate c => Lens' c Bool
related :: HasReportOptsNoUpdate c => Lens' c Bool
row_total :: HasReportOptsNoUpdate c => Lens' c Bool
show_costs :: HasReportOptsNoUpdate c => Lens' c Bool
sort_amount :: HasReportOptsNoUpdate c => Lens' c Bool
sortspec :: HasReportOptsNoUpdate c => Lens' c SortSpec
statusesNoUpdate :: HasReportOptsNoUpdate c => Lens' c [Status]
summary_only :: HasReportOptsNoUpdate c => Lens' c Bool
transpose__ :: HasReportOptsNoUpdate c => Lens' c Bool
txn_dates :: HasReportOptsNoUpdate c => Lens' c Bool
value :: HasReportOptsNoUpdate c => Lens' c (Maybe ValuationType)
class HasReportSpec c
reportSpec :: HasReportSpec c => Lens' c ReportSpec
rsDay :: HasReportSpec c => Lens' c Day
rsQuery :: HasReportSpec c => Lens' c Query
rsQueryOpts :: HasReportSpec c => Lens' c [QueryOpt]
rsReportOpts :: HasReportSpec c => Lens' c ReportOpts
data Layout
LayoutWide :: Maybe Int -> Layout
LayoutTall :: Layout
LayoutBare :: Layout
LayoutTidy :: Layout
data ReportOpts
ReportOpts :: Period -> Interval -> [Status] -> Maybe ConversionOp -> Maybe ValuationType -> Bool -> DepthSpec -> Bool -> Bool -> Bool -> Bool -> StringFormat -> Maybe Text -> Bool -> [Text] -> Bool -> Bool -> SortSpec -> Bool -> BalanceCalculation -> BalanceAccumulation -> Maybe Text -> AccountListMode -> Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Maybe NormalSign -> Bool -> Bool -> Layout -> ReportOpts
[period_] :: ReportOpts -> Period
[interval_] :: ReportOpts -> Interval
[statuses_] :: ReportOpts -> [Status]
[conversionop_] :: ReportOpts -> Maybe ConversionOp
[value_] :: ReportOpts -> Maybe ValuationType
[infer_prices_] :: ReportOpts -> Bool
[depth_] :: ReportOpts -> DepthSpec
[date2_] :: ReportOpts -> Bool
[empty_] :: ReportOpts -> Bool
[no_elide_] :: ReportOpts -> Bool
[real_] :: ReportOpts -> Bool
[format_] :: ReportOpts -> StringFormat
[balance_base_url_] :: ReportOpts -> Maybe Text
[pretty_] :: ReportOpts -> Bool
[querystring_] :: ReportOpts -> [Text]
[average_] :: ReportOpts -> Bool
[related_] :: ReportOpts -> Bool
[sortspec_] :: ReportOpts -> SortSpec
[txn_dates_] :: ReportOpts -> Bool
[balancecalc_] :: ReportOpts -> BalanceCalculation
[balanceaccum_] :: ReportOpts -> BalanceAccumulation
[budgetpat_] :: ReportOpts -> Maybe Text
[accountlistmode_] :: ReportOpts -> AccountListMode
[drop_] :: ReportOpts -> Int
[declared_] :: ReportOpts -> Bool
[row_total_] :: ReportOpts -> Bool
[no_total_] :: ReportOpts -> Bool
[summary_only_] :: ReportOpts -> Bool
[show_costs_] :: ReportOpts -> Bool
[sort_amount_] :: ReportOpts -> Bool
[percent_] :: ReportOpts -> Bool
[invert_] :: ReportOpts -> Bool
[normalbalance_] :: ReportOpts -> Maybe NormalSign
[color_] :: ReportOpts -> Bool
[transpose_] :: ReportOpts -> Bool
[layout_] :: ReportOpts -> Layout
data ReportSpec
ReportSpec :: ReportOpts -> Day -> Query -> [QueryOpt] -> ReportSpec
[_rsReportOpts] :: ReportSpec -> ReportOpts
[_rsDay] :: ReportSpec -> Day
[_rsQuery] :: ReportSpec -> Query
[_rsQueryOpts] :: ReportSpec -> [QueryOpt]
data SortField
AbsAmount' :: Bool -> SortField
Account' :: Bool -> SortField
Amount' :: Bool -> SortField
Date' :: Bool -> SortField
Description' :: Bool -> SortField
type SortSpec = [SortField]
type Average = MixedAmount
type Balance = MixedAmount
data CBCSubreportSpec a
CBCSubreportSpec :: Text -> Query -> (ReportOpts -> ReportOpts) -> (PeriodicReport DisplayName MixedAmount -> PeriodicReport a MixedAmount) -> Bool -> CBCSubreportSpec a
[cbcsubreporttitle] :: CBCSubreportSpec a -> Text
[cbcsubreportquery] :: CBCSubreportSpec a -> Query
[cbcsubreportoptions] :: CBCSubreportSpec a -> ReportOpts -> ReportOpts
[cbcsubreporttransform] :: CBCSubreportSpec a -> PeriodicReport DisplayName MixedAmount -> PeriodicReport a MixedAmount
[cbcsubreportincreasestotal] :: CBCSubreportSpec a -> Bool
type Change = MixedAmount
data CompoundPeriodicReport a b
CompoundPeriodicReport :: Text -> [DateSpan] -> [(Text, PeriodicReport a b, Bool)] -> PeriodicReportRow () b -> CompoundPeriodicReport a b
[cbrTitle] :: CompoundPeriodicReport a b -> Text
[cbrDates] :: CompoundPeriodicReport a b -> [DateSpan]
[cbrSubreports] :: CompoundPeriodicReport a b -> [(Text, PeriodicReport a b, Bool)]
[cbrTotals] :: CompoundPeriodicReport a b -> PeriodicReportRow () b
data DisplayName
DisplayName :: AccountName -> AccountName -> NumberOfIndents -> DisplayName
[displayFull] :: DisplayName -> AccountName
[displayName] :: DisplayName -> AccountName
[displayIndent] :: DisplayName -> NumberOfIndents
type Percentage = Decimal
data PeriodicReport a b
PeriodicReport :: [DateSpan] -> [PeriodicReportRow a b] -> PeriodicReportRow () b -> PeriodicReport a b
[prDates] :: PeriodicReport a b -> [DateSpan]
[prRows] :: PeriodicReport a b -> [PeriodicReportRow a b]
[prTotals] :: PeriodicReport a b -> PeriodicReportRow () b
data PeriodicReportRow a b
PeriodicReportRow :: a -> [b] -> b -> b -> PeriodicReportRow a b
[prrName] :: PeriodicReportRow a b -> a
[prrAmounts] :: PeriodicReportRow a b -> [b]
[prrTotal] :: PeriodicReportRow a b -> b
[prrAverage] :: PeriodicReportRow a b -> b
type Total = MixedAmount
data GhcDebugMode
GDNotSupported :: GhcDebugMode
GDDisabled :: GhcDebugMode
GDNoPause :: GhcDebugMode
GDPauseAtStart :: GhcDebugMode
GDPauseAtEnd :: GhcDebugMode
data YNA
Yes :: YNA
No :: YNA
Auto :: YNA
type FinalParseError = FinalParseError' HledgerParseErrorData
data FinalParseError' e
type FinalParseErrorBundle = FinalParseErrorBundle' HledgerParseErrorData
data FinalParseErrorBundle' e
data HledgerParseErrorData
type HledgerParseErrors = ParseErrorBundle Text HledgerParseErrorData
type SimpleStringParser a = Parsec HledgerParseErrorData String a
type SimpleTextParser = Parsec HledgerParseErrorData Text
data SourceExcerpt
type TextParser (m :: Type -> Type) a = ParsecT HledgerParseErrorData Text m a
type RegexError = String
data Regexp
type Replacement = String
data WideBuilder
WideBuilder :: !Builder -> !Int -> WideBuilder
[wbBuilder] :: WideBuilder -> !Builder
[wbWidth] :: WideBuilder -> !Int
data SourcePos
SourcePos :: FilePath -> !Pos -> !Pos -> SourcePos
[sourceName] :: SourcePos -> FilePath
[sourceLine] :: SourcePos -> !Pos
[sourceColumn] :: SourcePos -> !Pos
type Pid = CPid
data CmdSpec
ShellCommand :: String -> CmdSpec
RawCommand :: FilePath -> [String] -> CmdSpec
data CreateProcess
CreateProcess :: CmdSpec -> Maybe FilePath -> Maybe [(String, String)] -> StdStream -> StdStream -> StdStream -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Maybe GroupID -> Maybe UserID -> Bool -> CreateProcess
[cmdspec] :: CreateProcess -> CmdSpec
[cwd] :: CreateProcess -> Maybe FilePath
[env] :: CreateProcess -> Maybe [(String, String)]
[std_in] :: CreateProcess -> StdStream
[std_out] :: CreateProcess -> StdStream
[std_err] :: CreateProcess -> StdStream
[close_fds] :: CreateProcess -> Bool
[create_group] :: CreateProcess -> Bool
[delegate_ctlc] :: CreateProcess -> Bool
[detach_console] :: CreateProcess -> Bool
[create_new_console] :: CreateProcess -> Bool
[new_session] :: CreateProcess -> Bool
[child_group] :: CreateProcess -> Maybe GroupID
[child_user] :: CreateProcess -> Maybe UserID
[use_process_jobs] :: CreateProcess -> Bool
data ProcessHandle
data StdStream
Inherit :: StdStream
UseHandle :: Handle -> StdStream
CreatePipe :: StdStream
NoStream :: StdStream
data DependencyType
AllSucceed :: DependencyType
AllFinish :: DependencyType
type TestName = String
data TestTree
data Timeout
Timeout :: Integer -> String -> Timeout
NoTimeout :: Timeout
class Assertable t
assert :: Assertable t => t -> Assertion
type Assertion = IO ()
class AssertionPredicable t
assertionPredicate :: AssertionPredicable t => t -> IO Bool
type AssertionPredicate = IO Bool
data HUnitFailure
HUnitFailure :: Maybe SrcLoc -> String -> HUnitFailure
data Text
data CalendarDiffDays
CalendarDiffDays :: Integer -> Integer -> CalendarDiffDays
[cdMonths] :: CalendarDiffDays -> Integer
[cdDays] :: CalendarDiffDays -> Integer
newtype Day
ModifiedJulianDay :: Integer -> Day
[toModifiedJulianDay] :: Day -> Integer
class Ord p => DayPeriod p
periodFirstDay :: DayPeriod p => p -> Day
periodLastDay :: DayPeriod p => p -> Day
dayPeriod :: DayPeriod p => Day -> p
type DayOfMonth = Int
type MonthOfYear = Int
type Year = Integer
data DayOfWeek
Monday :: DayOfWeek
Tuesday :: DayOfWeek
Wednesday :: DayOfWeek
Thursday :: DayOfWeek
Friday :: DayOfWeek
Saturday :: DayOfWeek
Sunday :: DayOfWeek
data DiffTime
data NominalDiffTime
data UTCTime
UTCTime :: Day -> DiffTime -> UTCTime
[utctDay] :: UTCTime -> Day
[utctDayTime] :: UTCTime -> DiffTime
newtype UniversalTime
ModJulianDate :: Rational -> UniversalTime
[getModJulianDate] :: UniversalTime -> Rational
class FormatTime t
data TimeLocale
TimeLocale :: [(String, String)] -> [(String, String)] -> (String, String) -> String -> String -> String -> String -> [TimeZone] -> TimeLocale
[wDays] :: TimeLocale -> [(String, String)]
[months] :: TimeLocale -> [(String, String)]
[amPm] :: TimeLocale -> (String, String)
[dateTimeFmt] :: TimeLocale -> String
[dateFmt] :: TimeLocale -> String
[timeFmt] :: TimeLocale -> String
[time12Fmt] :: TimeLocale -> String
[knownTimeZones] :: TimeLocale -> [TimeZone]
class ParseTime t
data CalendarDiffTime
CalendarDiffTime :: Integer -> NominalDiffTime -> CalendarDiffTime
[ctMonths] :: CalendarDiffTime -> Integer
[ctTime] :: CalendarDiffTime -> NominalDiffTime
data LocalTime
LocalTime :: Day -> TimeOfDay -> LocalTime
[localDay] :: LocalTime -> Day
[localTimeOfDay] :: LocalTime -> TimeOfDay
data TimeOfDay
TimeOfDay :: Int -> Int -> Pico -> TimeOfDay
[todHour] :: TimeOfDay -> Int
[todMin] :: TimeOfDay -> Int
[todSec] :: TimeOfDay -> Pico
data TimeZone
TimeZone :: Int -> Bool -> String -> TimeZone
[timeZoneMinutes] :: TimeZone -> Int
[timeZoneSummerOnly] :: TimeZone -> Bool
[timeZoneName] :: TimeZone -> String
data ZonedTime
ZonedTime :: LocalTime -> TimeZone -> ZonedTime
[zonedTimeToLocalTime] :: ZonedTime -> LocalTime
[zonedTimeZone] :: ZonedTime -> TimeZone
data Maybe a
Nothing :: Maybe a
Just :: a -> Maybe a
data Char
data [] a
