Infuse.nix: "deep" `override{Attrs}`, generalizes `pipe` and `recursiveUpdate`

infuse.nix is a “deep” version of both .override and .overrideAttrs. It generalizes both lib.pipe and recursiveUpdate. It can be used as a leaner, untyped alternative to lib.modules (if you want dynamic typechecking, it works well with yants)

There are two mirrors:

A tutorial will be added soon, along with the release of several projects downstream of this.

Short questions/bugs/help-requests can go to #six/hackint (but please keep in mind that I work asynchronously – I may only check once a day).

11 Likes

Replying here instead of continuing to hijack https://discourse.nixos.org/t/im-not-convinced-flake-inputs-should-exist/

Yes, but there’s nothing special about those specializations. You can omit them or use your own instead; there is no magic under the hood.

Please do! My projects are designed to prove that something is in fact possible. The whole goal is to get the ideas recycled into larger projects with more maintainers so I have time to move on to the next thing.

For major perspective shifts, this adoption strategy is more effective than submitting massive PRs.

3 Likes