docs: def erf(f=Ellipsis):
      '''
      erf(x) yields a potential function that calculates the error function over the input x. If x is
        a constant, yields a constant potential function.
      erf() is equivalent to erf(...), which is just the error function, calculated over its inputs.
      '''
      f = to_potential(f)
      if is_const_potential(f): return const_potential(np.erf(f.c))
      elif is_identity_potential(f): return ErfPotential()
      else: return compose(ErfPotential(), f)