···131131they must take care of the following:
132132133133```nix
134134-# use den.lib.take.exactly to avoid being called with `{host, user}`
135135-take.exactly ({ host }: ...)
134134+# avoid being called with `{host, user}`
135135+den.lib.perHost ({ host }: ...)
136136137137-# use den.lib.take.atLeast to avoid being called with `{host}`
138138-take.atLeast ({ host, user }: ...)
137137+# avoid being called with `{host}`
138138+den.lib.perUser ({ host, user }: ...)
139139```
140140141141Read the documentation at [`context/user.nix`](https://github.com/vic/den/blob/main/modules/context/user.nix) for all the details.
+2-2
docs/src/content/docs/guides/debug.md
···85858686**Duplicate values in lists**: Den deduplicates owned and static configs
8787from `den.default`, but parametric functions in `den.default.includes`
8888-run at every context stage. Use `den.lib.take.exactly` to restrict:
8888+run at every context stage. Use `den.lib.perHost` to restrict:
89899090```nix
9191-den.lib.take.exactly ({ host }: { nixos.x = 1; })
9191+den.lib.perHost ({ host }: { nixos.x = 1; })
9292```
93939494**Missing attribute**: The context does not have the expected parameter.
···53535454 Do this to prevent the function being invoked with `{host,user}`
55555656- take.exactly ({host}: ...)
5656+ den.lib.perHost ({host}: ...)
57575858 Or this to avoid it being invoked with `{host}`
59596060- take.atLeast ({host,user}: ...)
6060+ den.lib.perUser ({host,user}: ...)
61616262 Static aspects, -functions like `{class,aspect-chain}: ...`- at host-aspect.includes
6363 have **no way** to distinguish when the calling context is `{host}` or `{host,user}` if
···6666 Because of this, if you have such functions, they might produce duplicate values on list or
6767 conflicting values on package types. A work around is to wrap them in a context-aware function:
68686969- take.exactly ({host}: { includes = [ ({class, aspect-chain}: ...) ]; })
6969+ den.lib.perHost ({host}: {class, aspect-chain}: ...)
70707171 '';
7272