anchor.diff:      in
       if nixOpsModel then removeAttrs mergedNetwork [ "network" "resources" ] else mergedNetwork; # A NixOps model has a reserved network attributes that cannot be machines
     
  +  /*
  +   * Takes a merged network configuration and evaluates them producing a config
  +   * attribute for each of them.
  +   *
  +   * Parameters:
  +   * enableDisnix: Indicates whether Disnix must be enabled
  +   * nixOpsModel: Indicates whether we should use NixOps specific settings
  +   * useVMTesting: Indicates whether we should enable NixOS test instrumentation and VM settings
  +   * useBackdoor: Indicates whether we should enable the backdoor
  +   *
  +   * Returns:
  +   * An attribute set with evaluated machine configurationb properties
  +   */
     generateConfigurations = network: enableDisnix: nixOpsModel: useVMTesting: useBackdoor:
       pkgs.lib.mapAttrs (targetName: configuration:
         evalConfig {
  
positive.code:     ) (attrNames configurations)
    ;
    
    generateTargetPropertyList = configurations: targetProperty:
      map (targetName:
        let
  
negative.code:       activation = generateActivationMappings configurations targetProperty;
        targets = generateTargetPropertyList configurations targetProperty;
      };
    
    /*
     * Generates a distributed derivation file constisting of a mapping of store derivations
     * to machines from the 3 Disnix models.
     *
     * Parameters:
     * network: An evaluated network with machine configurations
     * targetProperty: Attribute from the infrastructure model that is used to connect to the Disnix interface
     * enableDisnix: Indicates whether Disnix must be enabled
     * nixOpsModel: Indicates whether we should use NixOps specific settings
     * useVMTesting: Indicates whether we should enable NixOS test instrumentation and VM settings
     * useBackdoor: Indicates whether we should enable the backdoor
     *
     * Returns: 
     * An attributeset which should be exported to XML representing the distributed derivation
     */
    generateDistributedDerivation = network: targetProperty: enableDisnix: nixOpsModel: useVMTesting: useBackdoor:
      let
        configurations = generateConfigurations network enableDisnix nixOpsModel useVMTesting useBackdoor;
  