docs: def add_dataset(dset, fn=None):
      '''
      add_dataset(dset) adds the given dataset to the neuropythy.data map.
      add_dataset(name, fn) adds a dataset with the given name; fn must be a function of zero
        arguments that yields the dataset.
  
      add_dataset always yeilds None or raises an error.
      '''
      global data
      if fn is None:
          if not isinstance(dset, Dataset):
              raise ValueError('Cannot add non-Dataset object to neuropythy datasets')
          nm = dset.name
          data = data.set(nm, dset)
      else:
          nm = Dataset.to_name(dset)
          def _load_dset():
              x = fn()
              if not isinstance(x, Dataset):
                  raise ValueError('Loader for dataset %s failed to return a dataset' % nm)
              return x
          data = data.set(nm, _load_dset)
      return None