anchor.diff:  { stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm, Xaw3d
   , pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
   , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
  -, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO
  +, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
  +, systemd ? null
   , withX ? !stdenv.isDarwin
   , withGTK2 ? false, gtk2 ? null
   , withGTK3 ? true, gtk3 ? null, gsettings-desktop-schemas ? null
  -, withXwidgets ? false, webkitgtk24x-gtk3 ? null, wrapGAppsHook ? null, glib-networking ? null
  +, withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null, glib-networking ? null
   , withCsrc ? true
   , srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
   }:
  
positive.code: assert withGTK3 -> withX || stdenv.isDarwin;
  assert withGTK2 -> !withGTK3 && gtk2 != null;
  assert withGTK3 -> !withGTK2 && gtk3 != null;
  assert withXwidgets -> withGTK3 && webkitgtk24x-gtk3 != null;
  
  let
    toolkit =
  
negative.code: 
    buildInputs =
      [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
      ++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
      ++ lib.optionals withX
        [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
          imagemagick gconf m17n_lib libotf ]
      ++ lib.optional (withX && withGTK2) gtk2
      ++ lib.optionals (withX && withGTK3) [ gtk3 gsettings-desktop-schemas ]
      ++ lib.optional (stdenv.isDarwin && withX) cairo
      ++ lib.optionals (withX && withXwidgets) [ webkitgtk ];
  
    propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ];
  
  