sig exception Invalid_char val str_encode : string -> string val str_decode : string -> string val encode : (char, 'a, 'b) IO.output -> (char, string, 'b) IO.output val decode : (char, 'a) IO.input -> (char, string) IO.input end