docs: def is_empty_shape(sh: ShExJ.Shape) -> bool:
          """ Determine whether sh has any value """
          return sh.closed is None and sh.expression is None and sh.extra is None and \
              sh.semActs is None