sig
  type t
  val init : unit -> unit
  val create : string -> string -> Thing.t -> string -> bool -> Thing.t
  val relation : Thing.t -> string -> Thing.t -> int -> int -> unit
  val remove_relation : Thing.t -> string -> Thing.t -> unit
  val remove : Thing.t -> unit
  val execute : unit -> unit
  val output : Pervasives.out_channel -> Thing.t -> unit
  val input : Pervasives.in_channel -> Thing.t -> unit
  val compare_file :
    Pervasives.in_channel -> Thing.t -> string -> Thing.t -> bool
  val get : string -> string -> Thing.t
  val name : Thing.t -> string
  val string_type : Thing.t -> string
  val related : Thing.t -> string -> Thing.t
  val parm : Thing.t -> string -> int
  val extra : Thing.t -> string -> int
  val no : Thing.t -> string -> int
  val parent : Thing.t -> Thing.t
  val descr : Thing.t -> string
  val parm_related : Thing.t -> string -> int -> Thing.t
  val rel : Thing.t -> string -> (Thing.t * int * int) list
end