Templating language with similar syntax and features to Liquid or Jinja2.


Version on this page:
LTS Haskell 21.25:
Stackage Nightly 2023-06-21:
Latest on Hackage:

See all snapshots ede appears in

LicenseRef-OtherLicense licensed by Brendan Hay
Maintained by Brendan Hay
This version can be pinned in stack with:ede-,3563

Module documentation for



ED-E is a templating language written in Haskell with a specific set of features:

  • Logicless (within reason): A small set of consistent predicates and expressions for formatting and presentational logic are provided.
  • Secure: No arbitrary code evaluation, with input data required to be fully specified at render time.
  • Stateless: Parsing and rendering are separate steps so that loading, parsing, include resolution, and embedding of the compiled template can optionally be done ahead of time, amortising cost.
  • Markup agnostic: ED-E is used to write out everything from configuration files for system services, to HTML and formatted emails.
  • Control over purity: Users can choose pure or IO-based resolution of include expressions.
  • No surprises: All parsing, type assurances, and rendering steps report helpful error messages with line/column metadata. Variable shadowing, unprintable expressions, implicit type coercion, and unbound variable access are all treated as errors errors.

Please see the documentation for more information.


A set of syntatic/semantic fragments for all supported expressions can be found in the tests or the documentation.


For any problems, comments or feedback please create an issue here on GitHub.


ED-E is released under the Mozilla Public License Version 2.0