# Nix function to merge attributes / records recursively and concatenate arrays

**URL:** https://discourse.nixos.org/t/nix-function-to-merge-attributes-records-recursively-and-concatenate-arrays/2030
**Category:** Help
**Created:** [February 3, 2019, 4:29pm UTC](https://discourse.nixos.org/t/nix-function-to-merge-attributes-records-recursively-and-concatenate-arrays/2030 "2019-02-03T16:29:09Z")
**Posts on this page:** 1
**Showing post:** 7

<div class="post-metadata">

### Author: ![amjoseph](https://discourse.nixos.org/user_avatar/discourse.nixos.org/amjoseph/32/28378_2.png) [@amjoseph](https://discourse.nixos.org/u/amjoseph)
#### Post date: [September 29, 2024, 10:24am UTC](https://discourse.nixos.org/t/nix-function-to-merge-attributes-records-recursively-and-concatenate-arrays/2030/7 "2024-09-29T10:24:28Z")

</div>

You might be interested in `infuse`, which can do this (and many other things) without dragging in the whole module system.

> [@Infuse.nix: "deep" \`override{Attrs}\`, generalizes \`pipe\` and \`recursiveUpdate\`](https://discourse.nixos.org/t/infuse-nix-deep-override-attrs-generalizes-pipe-and-recursiveupdate/51665):
>
> 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](https://code.tvl.fyi/tree/nix/yants/README.md)) There are two mirrors: [https://codeberg.org/amjoseph/infuse.nix](https://codeberg.org/amjoseph/infuse.nix) (prettier markdown rendering, PRs disabled) [https://git.sr.ht/~amjoseph/infuse.nix](https://git.sr.ht/~amjoseph/infuse.nix) (canonical repo; send patches here) A tutorial will be added soon, along with the release of several p…

---

_[View the full topic](https://discourse.nixos.org/t/nix-function-to-merge-attributes-records-recursively-and-concatenate-arrays/2030)._
