Module Omg

type generator = {
forward_cache : (string * string, (string, int) Stdlib.Hashtbl.t) Stdlib.Hashtbl.t;
backward_cache : (string * string, (string, int) Stdlib.Hashtbl.t) Stdlib.Hashtbl.t;
words : (int, string) Stdlib.Hashtbl.t;
last_two_words : string * string;
}
val list_random_el : 'a list -> 'a
val add_word : generator -> string -> generator
val get_last_two_words : generator -> string list
val init : unit -> generator
val triples : 'a list -> ('a * 'a * 'a) list
val add_key : ('a('b, int) Stdlib.Hashtbl.t) Stdlib.Hashtbl.t -> 'a -> 'b -> unit
val feed : generator -> string -> generator
val select_seed : generator -> string option -> bool -> string * string
val generate_markov_text : generator -> int -> (string option * string option) -> bool -> string