anchor.diff:     * List of mappings
      */
   
  -  generateServiceActivationMapping = serviceNames: services: targetProperty:     
  +  generateServiceActivationMapping = serviceNames: services: targetProperty:
       let
         service = getAttr (head serviceNames) services;
         mappingItem = map (distributionItem:
           { inherit (distributionItem) service target;
  -	  inherit (service) name type;
  -	  inherit targetProperty;
  -	  dependsOn = generateDependencyMapping (attrNames (service.dependsOn)) (service.dependsOn) services; 
  -	}
  +          inherit (service) name type;
  +          inherit targetProperty;
  +          dependsOn = generateDependencyMapping (attrNames (service.dependsOn)) (service.dependsOn) services; 
  +        }
         ) (service.distribution);
       in
       if serviceNames == [] then [] else mappingItem ++ (generateServiceActivationMapping (tail serviceNames) services targetProperty)
  
positive.code:       profileManifest = generateProfileManifest serviceActivationMapping (head targetNames) infrastructure;
        mappingItem = {
          profile = (pkgs.buildEnv {
  	  name = head targetNames;
  	  paths = servicesPerTarget;
  	  manifest = pkgs.writeTextFile {
  	    name = "manifest";
  	    text = "${pkgs.lib.concatMapStrings (manifestItem: "${manifestItem}\n") profileManifest}";
  	  };
  	  ignoreCollisions = true;
  	}).outPath;
  	target = getAttr targetProperty target;
        };
      in
      if targetNames == [] then []
  
negative.code:    
    generateDistributionModelBody = serviceNames: targetNames: allTargetNames:
      if serviceNames == [] then ""
      else
        "  ${head serviceNames} = [ infrastructure.${head targetNames} ];\n" +
        (if (tail targetNames) == [] then generateDistributionModelBody (tail serviceNames) allTargetNames allTargetNames
        else generateDistributionModelBody (tail serviceNames) (tail targetNames) allTargetNames)
  