Transpose
Generic 2-level attribute set transposition: { a.b = v } → { b.a = v }. Parameterized by an emit hook.
Learn More
Transpose
Generic 2-level attribute set transposition: { a.b = v } → { b.a = v }. Parameterized by an emit hook.
Learn More
Aspects & Resolution
Aspect submodules with includes (dependency graph) and per-class configs. Recursive resolution collects all transitive class-specific modules.
Learn More
Providers & Fixpoint
Nested sub-aspects via provides / _. Fixpoint semantics let providers reference siblings and top-level aspects.
Learn More
With flake-parts
The flakeModule wires flake.aspects → flake.modules automatically. Minimal setup.
Learn More
Without Flakes
Use new-scope with lib.evalModules for isolated namespaces. No flake-parts dependency needed.
Learn More
Cross-Aspect Dependencies
includes forms a DAG. Only classes present on the included aspect propagate during resolution.
Learn More
Parametric Aspects
Curried providers with arguments at inclusion time. Works at both provides and top levels.
Learn More
__functor Override
Intercept inclusion. Dispatch different configs based on class and aspect-chain context.
Learn More
Forward Across Classes
Route resolved modules from one class into a submodule path of another class. Learn More
API
Full export table: transpose, types, aspects, new, new-scope, forward.
Learn More
Type System
aspectsType, aspectSubmodule, providerType — the Nix option types that validate aspect definitions.
Learn More
Test Suite
16 test files covering every feature. How to run and read them. Learn More