@hackage unbeliever0.11.0.1

Opinionated Haskell Interoperability

A library to help build command-line programs, both tools and longer-running daemons. Its Program type provides unified ouptut & logging, command-line option parsing, exception handling, and a place to put top-level application state. There's also an underlying Rope text type built on a finger tree of UTF-8 fragments along with conveniences for pretty printing and colourizing terminal output.

A description of this package, a list of features, and some background to its design is contained in the README on GitHub.

Useful starting points in the documentation are Core.Program.Execute and Core.Text.Rope.

An ancillary purpose of this library is to facilitate interoperability between different package families and ecosystems. Having a single batteries-included package (as was originally the case) made using it easier, but the resulting dependency footprint was considerable and growing. The code is thus now spread across several packages:

  • core-text

  • core-data

  • core-program

  • core-telemetry

with more forthcoming as we continue to add convenince and interoperability wrappers around streaming, webservers, and database access patterns.