public String toString() {
    String type = "unknown";
    if (_is_known) {
      if (_is_void) type = "void";
      else if (_is_string) type = "string";
      else if (_is_int) type = "int";
      else if (_is_long) type = "long";
      else if (_is_float) type = "float";
      else if (_is_double) type = "double";
      else if (_class != null) type = _class.toString();
    }

    return type
        + (_is_container
            ? "[" + (_container_class == null ? "" : "*" + _container_class.toString()) + "]"
            : "");
  }