anchor.diff:    };
   in
   
  +with lib;
  +let unwords = concatStringsSep " "; in
  +
  +let
  +  param = name: options:
  +    if options != [] then "${name}='${unwords options}'" else null;
  +  config = unwords (lib.filter (x: x != null) [
  +    (param "design" design)
  +    (param "upright" upright)
  +    (param "italic" italic)
  +    (param "oblique" oblique)
  +  ]);
  +  custom = design != [] || upright != [] || italic != [] || oblique != [];
  +in
  +
   stdenv.mkDerivation {
  -  inherit name version src;
  +  inherit name pname version src;
   
     nativeBuildInputs = [ nodejs ttfautohint otfcc ];
   
  
positive.code:     npm --offline rebuild
    '';
  
    installPhase = ''
      fontdir=$out/share/fonts/iosevka
  
      mkdir -p $fontdir
      cp -v dist/iosevka*/ttf/*.ttf $fontdir
    '';
  
    meta = with stdenv.lib; {
  
negative.code:   stdenv, lib,
    fetchFromGitHub, fetchurl,
    runCommand, writeText,
    nodejs, ttfautohint, otfcc,
  
    # Custom font set options.
    # See https://github.com/be5invis/Iosevka#build-your-own-style
    design ? [], upright ? [], italic ? [], oblique ? [],
    # Custom font set name. Required if any custom settings above.
    set ? null
  }:
  
  assert (design != []) -> set != null;
  assert (upright != []) -> set != null;
  assert (italic != []) -> set != null;
  assert (oblique != []) -> set != null;
  
  let
    installPackageLock = import ./package-lock.nix { inherit fetchurl lib; };
  in
  
  let pname = if set != null then "iosevka-${set}" else "iosevka"; in
  
  let
    version = "1.13.3";
    name = "${pname}-${version}";
    src = fetchFromGitHub {
      owner = "be5invis";
      repo ="Iosevka";
  