anchor.diff:  
       routes = mkOption {
         default = [ ];
  -      type = types.listOf types.optionSet;
  -      options = [ routeOptions ];
  +      type = with types; listOf (submodule [ routeOptions ]);
         description = ''
           A list of route sections to be added to the unit.  See
           <citerefentry><refentrytitle>systemd.network</refentrytitle>
  
positive.code: 
      addresses = mkOption {
        default = [ ];
        type = types.listOf types.optionSet;
        options = [ addressOptions ];
        description = ''
          A list of address sections to be added to the unit.  See
          <citerefentry><refentrytitle>systemd.network</refentrytitle>
  
negative.code: 
      systemd.network.links = mkOption {
        default = {};
        type = with types; attrsOf (submodule [ linkOptions ]);
        description = "Definition of systemd network links.";
      };
  
      systemd.network.netdevs = mkOption {
        default = {};
        type = with types; attrsOf (submodule [ netdevOptions ]);
        description = "Definition of systemd network devices.";
      };
  
      systemd.network.networks = mkOption {
        default = {};
        type = with types; attrsOf (submodule [ networkOptions networkConfig ]);
        description = "Definition of systemd networks.";
      };
  
      systemd.network.units = mkOption {
        description = "Definition of networkd units.";
        default = {};
        type = with types; attrsOf (submodule (
          { name, config, ... }:
          { options = concreteUnitOptions;
            config = {
              unit = mkDefault (makeUnit name config);
            };
          }));
      };
  
    };
  