Module Dolmen_loop.State

type perm =
| Allow
| Warn
| Error
exception File_not_found of Dolmen_std.Loc.full * string * string
exception Input_lang_changed of Logic.language * Logic.language
type lang = Logic.language
type ty_state = Typer.ty_state
type solve_state = unit
type 'solve state = {
debug : bool;
context : bool;
max_warn : int;
cur_warn : int;
time_limit : float;
size_limit : float;
input_dir : string;
input_lang : lang option;
input_mode : [ `Full | `Incremental ] option;
input_source : [ `Stdin | `File of string | `Raw of string * string ];
input_file_loc : Dolmen_std.Loc.file;
header_check : bool;
header_state : Headers.t;
header_licenses : string list;
header_lang_version : string option;
type_state : ty_state;
type_check : bool;
type_strict : bool;
solve_state : 'solve;
export_lang : (lang * Stdlib.Format.formatter) list;
}
type t = solve_state state
val pp_loc : Stdlib.Format.formatter -> Dolmen_std.Loc.loc option -> unit
val error : ?⁠code:Code.t -> ?⁠loc:Dolmen_std.Loc.full -> 'a -> ('b, Stdlib.Format.formatter, unit, unit, unit, 'c) Stdlib.format6 -> 'b
val warn : ?⁠loc:Dolmen_std.Loc.full -> 'a state -> ('b, Stdlib.Format.formatter, unit, 'a state) Stdlib.format4 -> 'b
val flush : 'a state -> unit -> 'a state
val time_limit : 'a state -> float
val size_limit : 'a state -> float
val input_dir : 'a state -> string
val input_mode : 'a state -> [ `Full | `Incremental ] option
val input_lang : 'a state -> lang option
val input_source : 'a state -> [ `File of string | `Raw of string * string | `Stdin ]
val input_file_loc : 'a state -> Dolmen_std.Loc.file
val set_input_file_loc : 'a state -> Dolmen_std.Loc.file -> 'a state
val set_mode : 'a state -> [ `Full | `Incremental ] -> 'a state
val header_state : 'a state -> Headers.t
val set_header_state : 'a state -> Headers.t -> 'a state
val check_headers : 'a state -> bool
val allowed_licenses : 'a state -> string list
val allowed_lang_version : 'a state -> string option
val ty_state : 'a state -> ty_state
val set_ty_state : 'a state -> ty_state -> 'a state
val typecheck : 'a state -> bool
val strict_typing : 'a state -> bool
val is_interactive : 'a state -> bool
val prelude : 'a state -> string
val switch_to_full_mode : string -> 'a state -> 'a state
val set_lang_aux : 'a state -> lang -> 'a state
val set_lang : 'a state -> lang -> 'a state
val start : 'a -> unit
val stop : 'a -> unit
val file_not_found : loc:Dolmen_std.Loc.full -> dir:string -> file:string -> 'a