sig
  val version : string
  type class_definition = string list * (string * string) list
  val default_default_style : Caml2html.Output.class_definition list
  val default_style : string
  val key_color1 : string option
  val key_color2 : string option
  val key_color3 : string option
  val key_color4 : string option
  val key_color5 : string option
  val construct_color : string option * string option * string
  val comment_color : string option * string option * string
  val string_color : string option * string option * string
  val alpha_keyword_color : string option * string option * string
  val nonalpha_keyword_color : string option * string option * string
  val default_keyword_color_list :
    (string * (string option * string option * string)) list
  val default_keyword_colors :
    (string, string option * string option * string) Hashtbl.t
  val all_colors : (string option * string option * string) list
  val make_css :
    ?default:Caml2html.Output.class_definition list ->
    ?colors:(string option * string option * string) list -> string -> unit
  type style = [ `Inhead of string | `Inline | `Url of string ]
  type param = {
    line_numbers : bool;
    title : bool;
    body_only : bool;
    tab_size : int;
    footnote : bool;
    style : Caml2html.Output.style;
    html_comments : bool;
    charset : string;
    annot_filter : Caml2html.Annot.filter;
    no_annot : bool;
    ie7 : bool;
  }
  val default_param : Caml2html.Output.param
  val ocaml :
    ?nbsp:bool ->
    ?keyword_colors:(string, string option * string option * string)
                    Hashtbl.t ->
    ?param:Caml2html.Output.param ->
    Buffer.t -> Caml2html.Input.token list -> unit
  val ocamlcode :
    ?annot:Caml2html.Annot.tag list ->
    ?keyword_colors:(string, string option * string option * string)
                    Hashtbl.t ->
    ?param:Caml2html.Output.param ->
    ?tag_open:string -> ?tag_close:string -> string -> string
  val ocamlpre :
    ?annot:Caml2html.Annot.tag list ->
    ?keyword_colors:(string, string option * string option * string)
                    Hashtbl.t ->
    ?param:Caml2html.Output.param ->
    ?tag_open:string -> ?tag_close:string -> string -> string
  val ocaml_file :
    ?filename:string ->
    ?keyword_colors:(string, string option * string option * string)
                    Hashtbl.t ->
    param:Caml2html.Output.param ->
    Buffer.t -> Caml2html.Input.token list -> unit
  val begin_document :
    ?param:Caml2html.Output.param -> Buffer.t -> string list -> unit
  val end_document : ?param:Caml2html.Output.param -> Buffer.t -> unit
  val handle_file :
    ?keyword_colors:(string, string option * string option * string)
                    Hashtbl.t ->
    ?param:Caml2html.Output.param -> Buffer.t -> string -> unit
  val save_file : ?dir:string -> Buffer.t -> string -> unit
  val ocaml_document :
    ?dir:string ->
    ?keyword_colors:(string, string option * string option * string)
                    Hashtbl.t ->
    ?param:Caml2html.Output.param -> string list -> string -> unit
end