(** Link and person information types *) (** Main link type *) type t = { href : string; text : string option; type_ : string option; } (** Person information *) and person = { name : string option; email : string option; link : t option; } (** Copyright information *) and copyright = { author : string; year : int option; license : string option; } (** {2 Link Operations} *) (** Create a link. @param href URL reference (required) @param ?text Optional link text @param ?type_ Optional MIME type *) val make : href:string -> ?text:string -> ?type_:string -> unit -> t (** Get href from link *) val href : t -> string (** Get optional text from link *) val text : t -> string option (** Get optional type from link *) val type_ : t -> string option (** Update text *) val with_text : t -> string -> t (** Update type *) val with_type : t -> string -> t (** Compare links *) val compare : t -> t -> int (** Test link equality *) val equal : t -> t -> bool (** Pretty print link *) val pp : Format.formatter -> t -> unit (** {2 Person Operations} *) (** Create person information *) val make_person : ?name:string -> ?email:string -> ?link:t -> unit -> person (** Get person name *) val person_name : person -> string option (** Get person email *) val person_email : person -> string option (** Get person link *) val person_link : person -> t option (** Compare persons *) val compare_person : person -> person -> int (** Test person equality *) val equal_person : person -> person -> bool (** Pretty print person *) val pp_person : Format.formatter -> person -> unit (** {2 Copyright Operations} *) (** Create copyright information *) val make_copyright : author:string -> ?year:int -> ?license:string -> unit -> copyright (** Get copyright author *) val copyright_author : copyright -> string (** Get copyright year *) val copyright_year : copyright -> int option (** Get copyright license *) val copyright_license : copyright -> string option (** Compare copyrights *) val compare_copyright : copyright -> copyright -> int (** Test copyright equality *) val equal_copyright : copyright -> copyright -> bool (** Pretty print copyright *) val pp_copyright : Format.formatter -> copyright -> unit