Module Djot_kernel.Document

module StrSet : sig ... end
module StrMap : sig ... end
module Assign : sig ... end
val alist_table : (string * 'a1) list -> 'a1 StrMap.t
val inline_text : Ast.inline -> string
val inlines_text : Ast.inlines -> string
val is_id_sep : char -> bool
val id_base : string -> string
val id_candidate : string -> int -> string
type id_state = {
  1. id_used : string list;
  2. id_refs : Ast.reference_map;
  3. id_count : int;
  4. id_used_set : StrSet.t;
  5. id_ref_labels : StrSet.t;
  6. id_next : int StrMap.t;
  7. id_derived : string list;
}
val id_state_init : id_state
val take_id : string -> id_state -> id_state
val add_auto_ref : string -> string -> id_state -> id_state
val register_id : Ast.attr -> id_state -> id_state
val fresh_index : StrSet.t -> string -> int -> int -> int
val fresh_for : id_state -> string -> int
val assign_heading_id : Ast.pos -> Ast.attr -> int -> Ast.inlines -> id_state -> id_state * Ast.block Ast.node
module Ids : sig ... end
type sect_state = ((int * Ast.attr) * Ast.blocks) list
val sect_init : sect_state
val close_ge : Ast.coq_PosPolicy -> int -> Ast.blocks -> sect_state -> sect_state
val sect_push : Ast.block Ast.node -> sect_state -> sect_state
val sect_bottom : sect_state -> Ast.blocks
val sectionize : Ast.coq_PosPolicy -> Ast.blocks -> Ast.blocks
val ref_entries : Ast.attr -> Ast.block -> Ast.reference_map
module Refs : sig ... end
module Notes : sig ... end
val doc_pass : Ast.coq_PosPolicy -> Ast.blocks -> Ast.doc
val parse_doc : InlineTable.dtable -> Step.bconfig -> Ast.coq_PosPolicy -> string -> Ast.doc
val parse_doc_located : InlineTable.dtable -> Step.bconfig -> string -> Ast.doc
val unsection_block : Ast.block -> Ast.pos -> Ast.attr -> Ast.blocks
val unsection : Ast.blocks -> Ast.blocks