(** Base checker module for HTML5 conformance checking. *) module type S = sig type state val create : unit -> state val reset : state -> unit val start_element : state -> name:string -> namespace:string option -> attrs:(string * string) list -> Message_collector.t -> unit val end_element : state -> name:string -> namespace:string option -> Message_collector.t -> unit val characters : state -> string -> Message_collector.t -> unit val end_document : state -> Message_collector.t -> unit end type t = (module S) (** No-operation checker implementation. *) module Noop = struct type state = unit let create () = () let reset () = () let start_element () ~name:_ ~namespace:_ ~attrs:_ _ = () let end_element () ~name:_ ~namespace:_ _ = () let characters () _ _ = () let end_document () _ = () end let noop () = (module Noop : S)