anchor.diff: -{ fetchurl, stdenv, autoreconfHook, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
  -, guileBindings, guile, perl, gmp, libidn, p11_kit, unbound, trousers
  +{ lib, fetchurl, stdenv, autoreconfHook, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
  +, guileBindings, guile, perl, gmp, libidn, p11_kit, unbound
  +, tpmSupport ? false, trousers
   
   # Version dependent args
   , version, src, patches ? []
  
positive.code: 
  assert guileBindings -> guile != null;
  
  let
    inherit (stdenv.lib) optional optionals optionalString;
  in
  stdenv.mkDerivation rec {
    name = "gnutls-${version}";
  
  
negative.code:   enableParallelBuilding = !guileBindings;
  
    buildInputs = [ lzo lzip nettle libtasn1 libidn p11_kit zlib gmp ]
      ++ lib.optional (tpmSupport && stdenv.isLinux) trousers
      ++ [ unbound ]
      ++ lib.optional guileBindings guile;
  
    nativeBuildInputs = [ perl pkgconfig autoreconfHook ];
  
  