anchor.diff:      ${optionalString (config.mode != "") "mode ${config.mode}"}
       ${optionalString (config.rate != "") "rate ${config.rate}"}
       ${optionalString (config.rotate != null) "rotate ${config.rotate}"}
  +    ${optionalString (config.transform != null) (
  +      "transform " + concatMapStringsSep "," toString (flatten config.transform)
  +    )}
     '' else ''
       output ${name}
       off
  
positive.code:         description = "Output rotate configuration.";
          default = null;
          example = "left";
        };
      };
    };
  
negative.code: let
  
    cfg = config.programs.autorandr;
  
    matrixOf = n: m: elemType: mkOptionType rec {
      name = "matrixOf";
      description = "${toString n}×${toString m} matrix of ${elemType.description}s";
      check = xss:
        let
          listOfSize = l: xs: isList xs && length xs == l;
        in
          listOfSize n xss && all (xs: listOfSize m xs && all elemType.check xs) xss;
      merge = mergeOneOption;
      getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*" "*"]);
      getSubModules = elemType.getSubModules;
      substSubModules = mod: matrixOf n m (elemType.substSubModules mod);
      functor = (defaultFunctor name) // { wrapped = elemType; };
    };
  
    profileModule = types.submodule {
      options = {
  