anchor.diff:        };
   
         shell = mkOption {
  -        type = types.nullOr (types.either types.shellPackage types.path);
  +        type = types.nullOr (types.either types.shellPackage (passwdEntry types.path));
           default = pkgs.shadow;
           defaultText = "pkgs.shadow";
           example = literalExample "pkgs.bashInteractive";
  
positive.code:       };
  
        home = mkOption {
          type = types.path;
          default = "/var/empty";
          description = "The user's home directory.";
        };
  
negative.code:     options = {
  
        name = mkOption {
          type = passwdEntry types.str;
          apply = x: assert (builtins.stringLength x < 32 || abort "Username '${x}' is longer than 31 characters which is not allowed!"); x;
          description = ''
            The name of the user account. If undefined, the name of the
  