docs: def is_persistent(arg):
      '''
      is_persistent(x) yields True if x is a persistent object and False if not.
  
      Note that this persistence can only be checked by the pimms library, so immutable/persistent
      structures not known to pimms or defined in terms of pimms's immutables library cannot be
      evaluated correctly.
  
      Additionally, is_persistent(x) checks only x; if x is a tuple of mutable objects, it is still
      considered a persistent object.
      '''
      from .immutable import (is_imm, imm_is_persistent)
      if is_imm(arg): return imm_is_persistent(arg)
      elif isinstance(arg, (np.generic, np.ndarray)): return not arg.flags.writeable
      elif is_quantity(arg) and isinstance(mag(arg), (np.generic, np.ndarray)):
          return not mag(arg).flags.writable
      elif is_str(arg): return True
      elif is_number(arg): return True
      elif is_pmap(arg): return True
      elif isinstance(arg, frozenset): return True
      elif isinstance(arg, (ps.PVector, ps.PSet, ps.PList, ps.PRecord)): return True
      else: return False