anchor.diff:      sha256 = "1jsqapgwrcqcaskyi2qdn1xj7l8x5340a137hdfshk5ya4dg9xkp";
     };
   
  -  patches = [
  -    # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
  -    ./search-path.patch
  -  ];
  +  inherit buildInputs;
  +  patches = [ ./search-path.patch ];
   
  -  inherit buildInputs;
     C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
     LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
     configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
   
     preConfigure = ''
  -    # Purity.
  -    for i in /usr /sw /opt /pkg; do
  +    for i in /usr /sw /opt /pkg; do	# improve purity
         substituteInPlace ./setup.py --replace $i /no-such-path
       done
  -  '' + (if readline != null then ''
  -    export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"
  -  '' else "");
  +    ${optionalString (ncurses != null) ''export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"''}
  +    ${optionalString stdenv.isDarwin   ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
  +  '';
   
     setupHook = ./setup-hook.sh;
   
  
positive.code:   '';
  
    passthru = {
      inherit zlibSupport;
      sqliteSupport = sqlite != null;
      db4Support = db4 != null;
      readlineSupport = readline != null;
  
negative.code: { stdenv, fetchurl
  , zlib
  , bzip2
  , gdbm
  , sqlite
  , db4
  , ncurses
  , readline
  , openssl
  , tcl, tk
  , libX11, xproto
  , arch ? null, sw_vers ? null
  }:
  
  assert stdenv.isDarwin -> arch != null;
  assert stdenv.isDarwin -> sw_vers != null;
  assert readline != null -> ncurses != null;
  
  with stdenv.lib;
  
  let
    majorVersion = "3.1";
    version = "${majorVersion}.3";
  
    buildInputs = filter (p: p != null) [
      zlib bzip2 gdbm sqlite db4 readline ncurses openssl tcl tk libX11 xproto arch sw_vers
    ];
  in
  stdenv.mkDerivation {
    name = "python3-${version}";
    inherit majorVersion version;
  
  