anchor.diff:      homepage    = "https://pytorch.org/";
       license     = lib.licenses.bsd3;
       platforms   = with lib.platforms; linux ++ lib.optionals (!cudaSupport) darwin;
  -    maintainers = with lib.maintainers; [ teh thoughtpolice stites tscholak ]; # tscholak esp. for darwin-related builds
  +    maintainers = with lib.maintainers; [ teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
     };
   }
  
positive.code: { stdenv, fetchurl, fetchgit, buildPythonPackage, python, pythonOlder,
    cudaSupport ? false, cudatoolkit ? null, cudnn ? null, nccl ? null, magma ? null,
    mklSupport ? false, mkl ? null,
    openMPISupport ? false, openmpi ? null,
    buildNamedTensor ? false,
    buildBinaries ? false,
    cudaArchList ? null,
    fetchFromGitHub, lib, numpy, pyyaml, cffi, click, typing, cmake, hypothesis, numactl,
    linkFarm, symlinkJoin,
  
    # ninja (https://ninja-build.org) must be available to run C++ extensions tests,
    ninja,
  
    # dependencies for torch.utils.tensorboard
    tensorboardSupport ? true, pillow, six, future, tensorflow-tensorboard,
  
    utillinux, which, isPy3k }:
  
  assert !openMPISupport || openmpi != null;
  assert !tensorboardSupport || tensorflow-tensorboard != null;
  
  # assert that everything needed for cuda is present and that the correct cuda versions are used
  assert !cudaSupport || cudatoolkit != null;
  
negative.code:   #
    # Also of interest: pytorch ignores CXXFLAGS uses CFLAGS for both C and C++:
    # https://github.com/pytorch/pytorch/blob/v1.2.0/setup.py#L17
    NIX_CFLAGS_COMPILE = lib.optionals (blas.implementation == "mkl") [ "-Wno-error=array-bounds" ];
  
    nativeBuildInputs = [
      cmake
  