anchor.diff:      };
   
       matchBlocks = mkOption {
  -      type = types.listOf matchBlockModule;
  +      type = types.loaOf matchBlockModule;
         default = [];
  +      example = literalExample ''
  +        {
  +          "john.example.com" = {
  +            hostname = "example.com";
  +            user = "john";
  +          };
  +          foo = {
  +            hostname = "example.com";
  +            identityFile = "/home/john/.ssh/foo_rsa";
  +          };
  +        };
  +      '';
         description = ''
  -        Specify per-host settings.
  +        Specify per-host settings. Note, if the order of rules matter
  +        then this must be a list. See
  +        <citerefentry>
  +          <refentrytitle>ssh_config</refentrytitle>
  +          <manvolnum>5</manvolnum>
  +        </citerefentry>.
         '';
       };
     };
  
positive.code:         description = "The command to use to connect to the server.";
        };
      };
    };
  
    matchBlockStr = cf: concatStringsSep "\n" (
      ["Host ${cf.host}"]
  
negative.code: 
    yn = flag: if flag then "yes" else "no";
  
    matchBlockModule = types.submodule ({ name, ... }: {
      options = {
        host = mkOption {
          type = types.str;
  