type deflate_configuration = {max_chain : int;max_lazy : int;good_length : int;nice_length : int;
}val update_hash : int -> int -> inttype src = [ | `Channel of in_channel| `String of string| `Manual
]type decode = [ | `Await| `Flush| `End
]type state = {src : src;cfg : configuration;level : int;mutable i : bigstring;mutable i_pos : int;mutable i_len : int;l : literals;d : distances;w : bigstring;wbits : int;mutable lookahead : int;mutable strstart : int;prev : int array;head : int array;mutable hash : int;mutable match_start : int;mutable match_length : int;mutable match_available : bool;mutable insert : int;mutable prev_length : int;mutable prev_match : int;q : Queue.t;mutable crc : optint;mutable k : configuration -> state -> decode;
}val max_dist : state -> intval src_rem : state -> intval update_crc : state -> int -> unitval insert_string : state -> int -> intval succ_length : int array -> int -> unitval succ_distance : int array -> int -> unitval emit_match : state -> off:int -> len:int -> boolval succ_literal : int array -> char -> unitval emit_literal : state -> char -> boolval trailing : state -> [> `End ]val slide_hash : state -> unitval no_compression : state -> bool