lib.crossLists is deprecated, use lib.cartesianProductOfSets instead

Another workaround could be creating a second set just to pass into the function:

nix-repl> let
            s = {
              a = ["a" "b" "c" ];
              b = ["d" "e" "f"];
            };
          in
          lib.mapCartesianProduct ({x, y}: "${x}-${y}") { x = s.b; y = s.a; }
[
  "d-a"
  "d-b"
  "d-c"
  "e-a"
  "e-b"
  "e-c"
  "f-a"
  "f-b"
  "f-c"
]

I don’t have a strong opinion on deprecation, probably because I don’t have a strong need for the function; I’ll leave that to others.

1 Like