Notable Indirections

This sections tries to document where and why the structure of certain parts of the repository may not be straightfoward.

  • Tests for models are not automatically created in the fact-models library. Model creators should create a Test module for their model, and add those tests to the main Test module.

  • This repo uses ormolu for Haskell formatting. Other repos such as asclepias use brittany, but as of 2022-04-22 brittany yields errors likely due to incompatability with template haskell.

  • The eventline shape is defined for Rust in this repo, but as of 2022-04-22, the same shapes in Haskell are defined in the event-data-theory package in asclepias.

  • The build-fragments application (see flake.nix in project root) creates a dhall file than be used to check the integrity of each Fact.dhall (or Model.dhall) file. This is checked by the check-fragments.sh check (see flake.nix) with dhall freeze $1 --check --all. This also serves to check that the fragments are up-to-date assuming that the fragments are only created by build-fragments and not edited otherwise.