English

Eiger: Auditable, executable, flexible legal regulations

Programming Languages 2022-09-13 v1

Abstract

Despite recent advances in communication and automation, regulations are still written in natural-language prose, subject to ambiguity, inconsistency, and incompleteness. How can we craft regulations with precision? Our solution is embodied in Eiger, a domain-specific programming language embedded in Haskell. A domain expert pairs with a software engineer to write regulations in Eiger. The domain expert needs only to read and audit the code, but not write it. A first, limited, user study suggests that this works well in practice because Eiger code mostly looks like Excel formulas with simple SQL queries. Eiger forms the kernel of a new strategy to deliver value to clients in our professional services business with increased automation and precision. The framework is executable: based on client data, we can use Eiger both to deduce how best to adapt to a new regulation and then maintain compliance. This paper reviews the design of Eiger and walks through its implementation. To preserve a straightforward surface syntax but with monadic semantics, we have leveraged advanced features, including GHC.Generics, the new OverloadedRecordDot extension, and a novel approach to performing class instance selection at run-time.

Keywords

Cite

@article{arxiv.2209.04939,
  title  = {Eiger: Auditable, executable, flexible legal regulations},
  author = {Alexander Bernauer and Richard A. Eisenberg},
  journal= {arXiv preprint arXiv:2209.04939},
  year   = {2022}
}

Comments

15 pages, included embedded Haskell code

R2 v1 2026-06-28T01:05:39.535Z