sig
  type literal = {
    lit_value : string;
    lit_language : string option;
    lit_type : Rdf_uri.uri option;
  }
  type blank_id
  type node =
      Uri of Rdf_uri.uri
    | Literal of Rdf_node.literal
    | Blank
    | Blank_ of Rdf_node.blank_id
  val compare : Rdf_node.node -> Rdf_node.node -> int
  module Ord_type :
    sig
      type t = Rdf_node.node
      val compare : Rdf_node.node -> Rdf_node.node -> int
    end
  module NSet :
    sig
      type elt = node
      type t
      val empty : t
      val is_empty : t -> bool
      val mem : elt -> t -> bool
      val add : elt -> t -> t
      val singleton : elt -> t
      val remove : elt -> t -> t
      val union : t -> t -> t
      val inter : t -> t -> t
      val diff : t -> t -> t
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val subset : t -> t -> bool
      val iter : (elt -> unit) -> t -> unit
      val fold : (elt -> '-> 'a) -> t -> '-> 'a
      val for_all : (elt -> bool) -> t -> bool
      val exists : (elt -> bool) -> t -> bool
      val filter : (elt -> bool) -> t -> t
      val partition : (elt -> bool) -> t -> t * t
      val cardinal : t -> int
      val elements : t -> elt list
      val min_elt : t -> elt
      val max_elt : t -> elt
      val choose : t -> elt
      val split : elt -> t -> t * bool * t
      val find : elt -> t -> elt
    end
  type triple = Rdf_node.node * Rdf_node.node * Rdf_node.node
  val string_of_blank_id : Rdf_node.blank_id -> string
  val blank_id_of_string : string -> Rdf_node.blank_id
  val node_of_uri_string : string -> Rdf_node.node
  val mk_literal :
    ?typ:Rdf_uri.uri -> ?lang:string -> string -> Rdf_node.literal
  val mk_literal_datetime : ?d:float -> unit -> Rdf_node.literal
  val node_of_datetime : ?d:float -> unit -> Rdf_node.node
  val datetime_of_literal : Rdf_node.literal -> Netdate.t
  val mk_literal_bool : bool -> Rdf_node.literal
  val mk_literal_int : int -> Rdf_node.literal
  val mk_literal_double : float -> Rdf_node.literal
  val bool_of_literal : Rdf_node.literal -> bool
  val node_of_literal_string :
    ?typ:Rdf_uri.uri -> ?lang:string -> string -> Rdf_node.node
  val node_of_int : int -> Rdf_node.node
  val node_of_double : float -> Rdf_node.node
  val node_of_bool : bool -> Rdf_node.node
  val quote_str : string -> string
  val string_of_literal : Rdf_node.literal -> string
  val string_of_node : Rdf_node.node -> string
  val node_hash : Rdf_node.node -> int64
  val lit_true : Rdf_node.literal
  val lit_false : Rdf_node.literal
end