Module Huffman_coding

module Huffman_coding: sig .. end

type t = 
| Leaf of {
   weight : int;
   char : char;
}
| Node of {
   weight : int;
   left : t;
   right : t;
}
val weight : t -> int
module NodeMinHeap: Binary_heap.BinaryHeap(sig
type t = Huffman_coding.t 
val compare : t -> t -> int
val show : t -> string
end)
val frequency : string -> (char, int) Stdlib.Hashtbl.t
val code_tree : string -> t
val build_dictionary : t -> (char * int list) list
val encode : string -> (char * 'a list) list -> 'a list
val decode : t -> int list -> char list