errata: Source code error pretty printing

[ library, mit, pretty-printer, program ] [ Propose Tags ]

An extremely customizable error pretty printer that can handle many kinds of error formatting. It can handle errors that are connected, disconnected, and those spanning multiple lines.

You can get started by importing the Errata module.

[Skip to Readme]


Automatic Flags

Enable the use of wcwidth for character widths. If disabled, uses an incomplete premade version.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,
Change log
Dependencies base (>=4.12 && <4.17), containers (>=0.6 && <0.7), errata, text (>=1.2.3 && <2.1) [details]
License MIT
Copyright (c) 2020- comp
Author comp
Category Pretty Printer
Home page
Bug tracker
Source repo head: git clone
Uploaded by comp at 2022-02-15T03:55:30Z
Distributions LTSHaskell:, NixOS:, Stackage:
Executables errata-example
Downloads 440 total (13 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for errata-

[back to package description]


MIT License Hackage CI

Errata is an extremely customizable error pretty printer that can handle many kinds of error formatting.


Errata can handle errors that are all over the source or errors that are connected to each other spanning multiple lines. You can be as simple or as fancy as you like!

You can also customize the format of the printer in several ways:

  • Custom messages and labels
  • Custom character sets for symbols
  • Highlighting the source, messages, and symbols


A clean, modern error message that is trying to be helpful:

An error message that points out that the fold function was not found in scope. It then asks if the user meant to use foldl or foldr

A busy error message with underlining and connections:

An error message that highlights mismatching types in an if expression. The first section underlines the mismatching values, and the second section underlines the if expression