Creating a function name to be called with a given number of inputs It is advised to combine them with Nix Let so that they are evaluated within NixOS configuration files.

Nesting Functions

Functions are nested by default. What this means is that, if you provide multiple inputs, there will be other functions created that carry and separate the inputs so that they can be evaluated separately. If you want to avoid nesting, pass parameters as sets

Sets as Parameters

This is very similar to configuration.nix, where inputs are recieved and the body is evaluated.

Default Attributes

You can set default values for attributes incase a value is not given

Ignoring Additional Arguments

Use an ellipsis to note that only 2 inputs are required.

Saving All Parameters

Use @<variablename> to save all parameters to variable <variablename>