sig   module type Term = Ast_dimacs.Term   module type Statement = Ast_dimacs.Statement   module Make :     functor       (L : ParseLocation.S) (T : sig                                    type t                                    val atom : ?loc:L.t -> int -> t                                  end) (S : sig                                              type t                                              val clause :                                                ?loc:L.t -> T.t list -> t                                            end->       sig         type token         type statement = S.t         module Lexer :           sig exception Error val token : Lexing.lexbuf -> token end         module Parser :           sig             exception Error             val file :               (Lexing.lexbuf -> token) -> Lexing.lexbuf -> statement list             val input :               (Lexing.lexbuf -> token) -> Lexing.lexbuf -> statement option             module MenhirInterpreter :               sig                 type token = token                 type env                 type production                 type 'a checkpoint = private                     InputNeeded of env                   | Shifting of env * env * bool                   | AboutToReduce of env * production                   | HandlingError of env                   | Accepted of 'a                   | Rejected                 val offer :                   'a checkpoint ->                   token * Lexing.position * Lexing.position -> 'a checkpoint                 val resume : 'a checkpoint -> 'a checkpoint                 type supplier =                     unit -> token * Lexing.position * Lexing.position                 val lexer_lexbuf_to_supplier :                   (Lexing.lexbuf -> token) -> Lexing.lexbuf -> supplier                 val loop : supplier -> 'a checkpoint -> 'a                 val loop_handle :                   ('-> 'answer) ->                   ('a checkpoint -> 'answer) ->                   supplier -> 'a checkpoint -> 'answer                 val loop_handle_undo :                   ('-> 'answer) ->                   ('a checkpoint -> 'a checkpoint -> 'answer) ->                   supplier -> 'a checkpoint -> 'answer                 val loop_test :                   (env -> 'accu -> 'accu) -> 'a checkpoint -> 'accu -> 'accu                 val acceptable :                   'a checkpoint -> token -> Lexing.position -> bool                 type 'a lr1state                 val number : 'a lr1state -> int                 type element =                     Element : 'a lr1state * 'a * Lexing.position *                       Lexing.position -> element                 type stack = element MenhirLib.General.stream                 val stack : env -> stack                 val positions : env -> Lexing.position * Lexing.position                 val has_default_reduction : env -> bool               end             module Incremental :               sig                 val input :                   Lexing.position ->                   statement option MenhirInterpreter.checkpoint               end           end         val find : ?dir:string -> string -> string option         val parse_file : string -> statement list         val parse_input :           [ `File of string | `Stdin ] -> unit -> statement option       end end