sig type error = CannotRun of string | WrongMagic of string exception Error of Pparse.error val preprocess : string -> string val remove_preprocessed : string -> unit type 'a ast_kind = Structure : Parsetree.structure Pparse.ast_kind | Signature : Parsetree.signature Pparse.ast_kind val read_ast : 'a Pparse.ast_kind -> string -> 'a val write_ast : 'a Pparse.ast_kind -> string -> 'a -> unit val file : tool_name:string -> string -> (Stdlib.Lexing.lexbuf -> 'a) -> 'a Pparse.ast_kind -> 'a val apply_rewriters : ?restore:bool -> tool_name:string -> 'a Pparse.ast_kind -> 'a -> 'a val apply_rewriters_str : ?restore:bool -> tool_name:string -> Parsetree.structure -> Parsetree.structure val apply_rewriters_sig : ?restore:bool -> tool_name:string -> Parsetree.signature -> Parsetree.signature val report_error : Stdlib.Format.formatter -> Pparse.error -> unit val parse_implementation : tool_name:string -> string -> Parsetree.structure val parse_interface : tool_name:string -> string -> Parsetree.signature val call_external_preprocessor : string -> string -> string val open_and_check_magic : string -> string -> Stdlib.in_channel * bool end