docs: public static String asString(Object o) {
          if (o == null) {
              return NULL;
          } else if (o instanceof Stringable) {
              return ((Stringable) o).asString();
          } else if (o instanceof Numeric) {
              return String.format("%d", ((Numeric) o).asInteger());
          } else if (o instanceof CharSequence) {
              return String.format("\"%s\"", escape((CharSequence) o));
          } else if (o instanceof Double) {
              return asString(((Double) o).doubleValue());
          } else if (o instanceof Collection) {
              return asString((Collection<?>) o);
          } else if (o instanceof Map) {
              return asString((Map<?, ?>) o);
          } else {
              return o.toString();
          }
      }