anchor.diff:  
   assert alsaSupport   -> alsaLib       != null;
   assert githubSupport -> curl          != null;
  -assert mpdSupport    -> mpd_clientlib != null;
  +assert mpdSupport    -> libmpdclient != null;
   assert pulseSupport  -> libpulseaudio != null;
   
   assert iwSupport     -> ! nlSupport && wirelesstools != null;
  
positive.code: { cairo, cmake, fetchFromGitHub, libXdmcp, libpthreadstubs, libxcb, pcre, pkg-config
  , python3, lib, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
  , xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper
  , removeReferencesTo
  
  # optional packages-- override the variables ending in 'Support' to enable or
  # disable modules
  , alsaSupport   ? true,  alsaLib       ? null
  , githubSupport ? false, curl          ? null
  , mpdSupport    ? false, mpd_clientlib ? null
  , pulseSupport  ? false, libpulseaudio ? null
  , iwSupport     ? false, wirelesstools ? null
  , nlSupport     ? true,  libnl         ? null
  
negative.code:       fetchSubmodules = true;
      };
  
      buildInputs = [
        cairo
        libXdmcp
        libpthreadstubs
        libxcb
        pcre
        python3
        xcbproto
        xcbutil
        xcbutilcursor
        xcbutilimage
        xcbutilrenderutil
        xcbutilwm
        xcbutilxrm
  
        (if alsaSupport   then alsaLib       else null)
        (if githubSupport then curl          else null)
        (if mpdSupport    then libmpdclient  else null)
        (if pulseSupport  then libpulseaudio else null)
  
        (if iwSupport     then wirelesstools else null)
        (if nlSupport     then libnl         else null)
  
        (if i3Support || i3GapsSupport then jsoncpp else null)
        (if i3Support then i3 else null)
        (if i3GapsSupport then i3-gaps else null)
  
        (if i3Support || i3GapsSupport then makeWrapper else null)
      ];
  
      postInstall = if i3Support
                    then ''wrapProgram $out/bin/polybar \
                             --prefix PATH : "${i3}/bin"
                         ''
                    else if i3GapsSupport
                    then ''wrapProgram $out/bin/polybar \
                             --prefix PATH : "${i3-gaps}/bin"
                         ''
                    else '''';
  
      nativeBuildInputs = [
        cmake
        pkg-config
        removeReferencesTo
      ];
  
      postFixup = ''
          remove-references-to -t ${stdenv.cc} $out/bin/polybar
      '';
  
      meta = with lib; {
        homepage = "https://polybar.github.io/";
        description = "A fast and easy-to-use tool for creating status bars";
  