| fail is moving out of Monad and into it's own MonadFail class. This will be enforced in GHC 8.8 (I think). base-compat/base-compat-batteries 0.11.0 have adapted to this, and are approaching stackage nightly (https://github.com/commercialhaskell/stackage/issues/4802). hledger is now ready to build with base-compat-batteries 0.11.0, once all of our deps do (eg aeson). We are still compatible with the older 0.10.x and GHC 7.10.3 as well. For now we are using both fails: - new fail (from Control.Monad.Fail), used in our parsers, imported via base-compat-batteries Control.Monad.Fail.Compat to work with older GHC versions. - old fail (from GHC.Base, exported by Prelude, Control.Monad, Control.Monad.State.Strict, Prelude.Compat, ...), used in easytest's Test, since I couldn't find their existing fail implementation to update. To reduce (my) confusion, these are imported carefully, consistently, and qualified everywhere as Fail.fail and Prelude.fail, with clashing re-exports suppressed, like so: import Prelude hiding (fail) import qualified Prelude (fail) import Control.Monad.State.Strict hiding (fail) import "base-compat-batteries" Prelude.Compat hiding (fail) import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail | ||
|---|---|---|
| .github | ||
| .sandstorm | ||
| bin | ||
| checks | ||
| doc | ||
| docker | ||
| examples | ||
| hledger | ||
| hledger-api | ||
| hledger-install | ||
| hledger-lib | ||
| hledger-ui | ||
| hledger-web | ||
| shell-completion | ||
| tests | ||
| tools | ||
| .appveyor.yml | ||
| .ci | ||
| .ctags | ||
| .dockerignore | ||
| .editorconfig | ||
| .ghci | ||
| .gitignore | ||
| .hlint.yaml | ||
| .mailmap | ||
| .travis-maybe-skip.sh | ||
| .travis.yml | ||
| .version | ||
| azure-pipelines.yml | ||
| bench.sh | ||
| cabal-install.sh | ||
| cabal.project | ||
| CHANGES.md | ||
| CONTRIBUTING.md | ||
| dev.hs | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| Makefile.helpsys | ||
| README.md | ||
| Shake.hs | ||
| stack-ghc7.10.yaml | ||
| stack-ghc8.0.yaml | ||
| stack-ghc8.2.yaml | ||
| stack-ghc8.4.yaml | ||
| stack.yaml | ||
hledger
lightweight, portable, dependable accounting tools
hledger is a computer program for easily tracking money, time, or other commodities, on unix, mac and windows (and web-capable mobile devices, to some extent).
It is first a command-line tool, but there are also curses-style and web interfaces, and a Haskell library (http://hackage.haskell.org/package/hledger-lib) for building your own programs and scripts (hledger is written in Haskell). hledger was inspired by and is largely compatible with Ledger. hledger is free software available under the GNU General Public License v3+.
hledger aims to help both computer experts and regular folks to gain clarity and control in their finances and time management, but currently it is a bit more suited to techies. I use it every day to:
- track spending and income
- see time reports by day/week/month/project
- get accurate numbers for client billing and tax filing
- track invoices
Though limited in features, hledger is lightweight, usable and reliable. For some, it is a simpler, less distracting, more future-proof alternative to Quicken or GnuCash.
For more, see http://hledger.org.
Support
Backers
Support us with a monthly donation and help us continue our activities. [Become a backer]
Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]