diff --git a/website/lib.nix b/website/lib.nix index aa8cdaa..4796190 100644 --- a/website/lib.nix +++ b/website/lib.nix @@ -1,7 +1,20 @@ { lib }: rec { template = g: f: x: - (g (f x)) // { override = o: g (lib.recursiveUpdate (f x) o); }; + let + base = f x; + result = g base; + in + result // { + override = new: + let + base' = lib.recursiveUpdate base new; + result' = g base'; + in + result' // { + override = new: (template g (x': base') x).override new; + }; + }; /** Recursively replace occurrences of `from` with `to` within `string`