@@ -55,19 +55,20 @@ let
5555 (builtins.map (x: lib.nameValuePair (x.name) x)
5656 (haskellLib.flatLibDepends {depends = directlySelectedComponents;}));
5757
58+ isSelectedComponent =
59+ comp: selectedComponentsBitmap."${((haskellLib.dependToLib comp).name or null)}" or false;
5860 selectedComponentsBitmap =
5961 lib.mapAttrs
60− (_: x: (builtins.any
61− (dep: selectedComponentsBitmap."${(haskellLib.dependToLib dep).name}") x.config.depends))
62+ (_: x: (builtins.any isSelectedComponent x.config.depends))
6263 transitiveDependenciesComponents
6364 // builtins.listToAttrs (map (x: lib.nameValuePair x.name true) directlySelectedComponents); # base case
6465
6566 selectedComponents =
66− lib.filter (x: selectedComponentsBitmap."${x.name}") (lib.attrValues transitiveDependenciesComponents);
67+ lib.filter isSelectedComponent (lib.attrValues transitiveDependenciesComponents);
6768
6869 # Given a list of `depends`, removes those which are selected components
6970 removeSelectedInputs =
70− lib.filter (input: !(selectedComponentsBitmap."${((haskellLib.dependToLib input).name or null)}" or false));
71+ lib.filter (input: !(isSelectedComponent input));
7172
7273 # The configs of all the selected components
7374 selectedConfigs = map (c: c.config) selectedComponents