fake.modules transposition for aspect-oriented Dendritic Nix. with cross-aspect dependencies. Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/
dendrix.oeiuwq.com/Dendritic.html
dendritic
nix
aspect
oriented
1lib:
2let
3
4 include =
5 class: aspect-chain: provider:
6 let
7 provided = provider { inherit aspect-chain class; };
8 in
9 resolve class aspect-chain provided;
10
11 resolve = class: aspect-chain: provided: {
12 imports = lib.flatten [
13 (provided.${class} or { })
14 (lib.map (include class (aspect-chain ++ [ provided ])) provided.includes)
15 ];
16 };
17
18in
19resolve