wip
This commit is contained in:
		@@ -66,6 +66,13 @@ You can try those yourself. The first version is fine and returns an attrset
 | 
				
			|||||||
like you would expect. The second one has a cyclic dependency and nix helpfully
 | 
					like you would expect. The second one has a cyclic dependency and nix helpfully
 | 
				
			||||||
errors out.
 | 
					errors out.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The next step is making a function that has access to the unmodified original
 | 
				
			||||||
 | 
					values. This is managed through the `extends` function. It took a while for me to understand what's happening in there, but luckily nix has [good documentation](https://github.com/NixOS/nixpkgs/blob/67b1265fb3d38ead5a57fee838405a2d997777c2/lib/fixed-points.nix#L37-L65) for it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` nix
 | 
				
			||||||
 | 
					extends = f: rattrs: self: let super = rattrs self; in super // f self super
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- https://elvishjerricco.github.io/2017/04/01/nix-style-configs-in-haskell.html
 | 
					- https://elvishjerricco.github.io/2017/04/01/nix-style-configs-in-haskell.html
 | 
				
			||||||
- https://github.com/NixOS/nixpkgs/blob/master/lib/fixed-points.nix
 | 
					- https://github.com/NixOS/nixpkgs/blob/master/lib/fixed-points.nix
 | 
				
			||||||
- https://chshersh.github.io/posts/2019-03-25-comonadic-builders
 | 
					- https://chshersh.github.io/posts/2019-03-25-comonadic-builders
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user