docs: def qhashform(o):
      '''
      qhashform(o) yields a version of o, if possible, that yields a hash that can be reproduced
        across instances. This correctly handles quantities and numpy arrays, among other things.
      '''
      if is_quantity(o): return ('__#quant', qhashform(mag(o)), str(o.u))
      elif isinstance(o, np.ndarray) and np.issubdtype(o.dtype, np.dtype(np.number).type):
          return ('__#ndarray', o.tobytes())
      elif isinstance(o, (set, frozenset)): return ('__#set', tuple([qhashform(x) for x in o]))
      elif is_map(o): return ps.pmap({qhashform(k):qhashform(v) for (k,v) in six.iteritems(o)})
      elif is_str(o): return o
      elif hasattr(o, '__iter__'): return tuple([qhashform(u) for u in o])
      else: return o