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:     listToAttrs (map (serviceName: 
        let
          targets = getAttr serviceName distribution;
  	service = getAttr serviceName services;
        in
        { name = serviceName;
          value = service // {
  	  distribution = map (target:
  	    let
  	      system = if target ? system then target.system else builtins.currentSystem;
  	      pkg = (getAttr serviceName (servicesFun { inherit distribution; inherit system; pkgs = selectPkgs system; })).pkg;
  	    in
  	    { service = 
  	        if serviceProperty == "outPath" then
  	          if service.dependsOn == {} then pkg.outPath
  	          else (pkg (service.dependsOn)).outPath
  		else
  		  if service.dependsOn == {} then unsafeDiscardOutputDependency (pkg.drvPath)
  		  else unsafeDiscardOutputDependency ((pkg (service.dependsOn)).drvPath)
  		;
  	      inherit target;
  	    }
  	  ) targets;
  	};
        }	
      ) (attrNames distribution))
    ;
  
  
negative.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 []
  