anchor.diff:            "testSystemDepends"
             "testToolDepends"
           ];
  -        concatCombinableAttrs = haskellConfigs: lib.filterAttrs (n: v: v != []) (lib.listToAttrs (map (name: { inherit name; value = concatLists (map (haskellConfig: haskellConfig.${name} or []) haskellConfigs); }) combinableAttrs));
  +
  +        concatCombinableAttrs = haskellConfigs: lib.filterAttrs
  +          (n: v: v != [])
  +          (lib.zipAttrs (map
  +            (haskellConfig: lib.listToAttrs (map
  +              (name: {
  +                inherit name;
  +                value = haskellConfig.${name} or [];
  +              })
  +              (combinableAttrs haskellConfig)))
  +            haskellConfigs
  +            ));
  +
           getHaskellConfig = p: (overrideCabal p (args: {
             passthru = (args.passthru or {}) // {
               out = args;
  
positive.code:           "libraryToolDepends"
            "pkgconfigDepends"
            "setupHaskellDepends"
            "testDepends"
            "testFrameworkDepends"
            "testHaskellDepends"
  
negative.code: 
    workOnMulti' = { env, packageNames, tools ? _: [], shellToolOverrides ? _: _: {} }:
      let inherit (builtins) listToAttrs filter attrValues all concatLists;
          combinableAttrs = p: [
            "benchmarkDepends"
            "benchmarkFrameworkDepends"
            "benchmarkHaskellDepends"
  