Do not use the handle after closing it. *)
+val defnode : t -> string -> string -> string option -> int * bool
+ (** [defnode t name expr value] defines [name] whose value is the
+ result of evaluating [expr], which is a nodeset. *)
+
+val defvar : t -> string -> string option -> int option
+ (** [defvar t name expr] defines [name] whose value is the result
+ of evaluating [expr], replacing the old value if existing.
+ [None] as [expr] removes the variable [name]. *)
+
val get : t -> path -> value option
(** [get t path] returns the value at [path], or [None] if there
is no value. *)