sig
  type nilled = bool
  type _NodeKind =
      DocumentNodeKind
    | ElementNodeKind
    | AttributeNodeKind
    | TextNodeKind
    | ProcessingInstructionNodeKind
    | CommentNodeKind
  type 'a access_ops = {
    get_node_kind : 'a -> Dm_types._NodeKind;
    get_elem_node_name : 'a -> Namespace_symbols.relem_symbol;
    get_attr_node_name : 'a -> Namespace_symbols.rattr_symbol;
    get_elem_node_name_with_type :
      'a -> Namespace_symbols.relem_symbol * Namespace_symbols.rtype_symbol;
    get_attr_node_name_with_type :
      'a -> Namespace_symbols.rattr_symbol * Namespace_symbols.rtype_symbol;
    get_single_element_node : 'a -> 'a;
    get_document_node_children : 'a -> 'a Cursor.cursor;
    get_element_node_children : 'a -> 'a Cursor.cursor;
    get_pi_target : 'a -> string;
  }
end