Sourcetype decode = [ | `Await| `Flush| `End| `Malformed of string
] Sourceexception Invalid_huffman Sourcetype kind = | CODES| LENS| DISTS
Sourceval empty_table : int array * int Sourceval huffman : kind -> int array -> int -> int -> int array * int Sourcetype decoder = {src : src;mutable i : bigstring;mutable i_pos : int;mutable i_len : int;mutable hold : int;mutable bits : int;mutable last : bool;o : bigstring;t : bigstring;mutable t_need : int;mutable t_len : int;mutable o_pos : int;mutable l : int;mutable d : int;mutable literal : Lookup.t;mutable distance : Lookup.t;mutable jump : jump;w : WInf.t;mutable s : state;mutable k : decoder -> ret;
} Sourceand state = | Table of {hlit : int;hdist : int;hclen : int;
}| Inflate_table of {t : int array;l : int;r : int array;h : int * int * int;
}| Inflate| Slow| Flat| End_of_inflate
Sourceand jump = | Length| Distance| Write
Sourceand ret = | Await| Flush| End| K| Malformed of string
Sourceval reverse_bits : int -> int Sourceval (//) : int -> int -> int Sourceval decode : decoder -> [> `Await | `End | `Flush | `Malformed of string ]