anchor.diff:  { lib
   , buildPythonPackage
  +, pythonOlder
   , fetchPypi
   , fetchzip
   , alembic
  -, ipython
  +, async_generator
  +, certipy
  +, dateutil
  +, entrypoints
   , jinja2
  -, python-oauth2
  +, jupyter-telemetry
  +, oauthlib
  +, pamela
   , prometheus_client
  -, async_generator
  -, pamela
  +, requests
   , sqlalchemy
   , tornado
   , traitlets
  -, requests
  -, notebook
  -, pythonOlder
   , nodePackages
  -, oauthlib
  -, certipy
  -, jupyter-telemetry
   }:
   
   let
     # js/css assets that setup.py tries to fetch via `npm install` when building
  -  # from source.
  +  # from source. https://github.com/jupyterhub/jupyterhub/blob/master/package.json
     bootstrap =
       fetchzip {
  -      url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz";
  -      sha256 = "0r7s54bbf68ri1na9bbabyf12mcpb6zk5ja2q6z82aw1fa4xi3yd";
  +      url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
  +      sha256 = "1ywmxqdccg0mgx0xknrn1hlrfnhcwphc12y9l91zizx26fqfmzgc";
       };
     font-awesome =
       fetchzip {
  
positive.code:   '';
  
    propagatedBuildInputs = [
      alembic ipython jinja2 pamela python-oauth2 requests sqlalchemy tornado
      traitlets prometheus_client async_generator notebook certipy oauthlib
      jupyter-telemetry
    ];
  
    # Disable tests because they take an excessive amount of time to complete.
  
negative.code:       "'${nodePackages.configurable-http-proxy}/bin/configurable-http-proxy'"
  
      substituteInPlace setup.py --replace \
        "'npm'" "'true'"
  
      declare -A deps
      deps[bootstrap]=${bootstrap}
  