anchor.diff:          default = false;
           type = types.bool;
           description = ''
  -          Make Memtest86+, a memory testing program, available from the
  -          GRUB boot menu.
  +          Make Memtest86+ (or MemTest86 if EFI support is enabled),
  +          a memory testing program, available from the
  +          GRUB boot menu. MemTest86 is an unfree program, so
  +          this requires <literal>allowUnfree</literal> to be set to
  +          <literal>true</literal>.
           '';
         };
   
  
positive.code: 
  let
    memtest86 = pkgs.memtest86plus;
    cfg = config.boot.loader.grub.memtest86;
  in
  
  
negative.code:     };
    };
  
    config = mkMerge [
      (mkIf (cfg.enable && efiSupport) {
        assertions = [
          {
            assertion = cfg.params == [];
            message = "Parameters are not available for MemTest86";
          }
        ];
  
        boot.loader.grub.extraFiles = {
          "memtest86.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi";
        };
  
        boot.loader.grub.extraEntries = ''
          menuentry "Memtest86" {
            chainloader /memtest86.efi
          }
        '';
      })
  
      (mkIf (cfg.enable && !efiSupport) {
        boot.loader.grub.extraEntries =
          if config.boot.loader.grub.version == 2 then
            ''
              menuentry "Memtest86+" {
                linux16 @bootRoot@/memtest.bin ${toString cfg.params}
              }
            ''
          else
            throw "Memtest86+ is not supported with GRUB 1.";
  
        boot.loader.grub.extraFiles."memtest.bin" = "${memtest86}/memtest.bin";
      })
    ];
  }
  