sig
  type gedcom_line = int * string option * string * string option
  type gedcom_node = Gedcom.gedcom_line * gedcom_node list
  val parse_line : string -> Gedcom.gedcom_line
  val parse_lines : Pervasives.in_channel -> Gedcom.gedcom_line list
  val mk_tree : Gedcom.gedcom_line list -> Gedcom.gedcom_node list
  val lvl : Gedcom.gedcom_line -> int
  val xref : Gedcom.gedcom_line -> string
  val tag : Gedcom.gedcom_line -> string
  val value : Gedcom.gedcom_line -> string
  val node : Gedcom.gedcom_node -> Gedcom.gedcom_line
  val children : Gedcom.gedcom_node -> Gedcom.gedcom_node list
  module GedcomHelpers :
    sig
      val concat : Gedcom.gedcom_line list -> Gedcom.gedcom_line list
      val trim_xref : string -> string
      val parse_name :
        string -> string option * string option * string option
      val name_first :
        string option * string option * string option -> string
      val name_last : string option * string option * string option -> string
      val name_title :
        string option * string option * string option -> string
    end
  module GedcomPrint :
    sig
      val print_gedcom_line : Gedcom.gedcom_line -> unit
      val print_gedcom_node : Gedcom.gedcom_node -> unit
    end
end