Learn More

What is Idiom

Idiom is a domain-specific language, hosted in the general purpose language Haskell, which provides a statically-typed build system (similar to Make or Bazel in end result). It allows the user to declare desired artifacts to be built and in what manner, as if writing a normal imperative program, and explicitly declare the dependency graph between these artifacts. Data passing between the nodes in this dependency graph can be arbitrarily transformed by pure Haskell functions, giving a high degree of well-typed power over more conventional dynamically-typed build systems. Finally, the build can be inspected before running, and run either in part or in full, as needed.

Who It's For

Idiom is a tool created for managing complex operations workflows in a type-safe language. Consider Idiom when you need to reliably manage large numbers of components using a declarative syntax.