Skip to content

gen — the foundations

gen is a family of small, pure Nix libraries by sini. They are the foundation that den is built on: the algebra, the scope handling, and the aspect composition primitives that make context driven, aspect oriented configuration possible.

Each library is focused and depends on almost nothing, so you can use one on its own or compose several together. The umbrella project, gen, gathers unified documentation for the whole family.

gen-algebra

Pure Nix primitives: a search monad, intensional functions, record algebra, and validators.

Source

gen-aspects

Aspect oriented composition types for Nix module systems. The composition core that den relies on.

Source

gen-scope

Demand driven attribute grammar evaluator over algebraic scope graphs.

Source

gen-graph

Monotonic query combinators over scope graphs (Arntzenius 2016).

Source

gen-select

Selector algebra for attributed graph positions.

Source

gen-derive

Stratified rule dispatch with fixpoint convergence.

Source

gen-bind

Module binding with external arguments for Nix.

Source

gen-vars

Scope driven, multi target variable generation.

Source

gen-schema

Part of the gen family. See the repository for details.

Source

genx

Zero dependency extended Nix primitives: lists, strings, math, encoding, and more.

Source
gen on GitHub