let int_of_digit chr = match chr with '0'..'9' -> (Char.code chr) - (Char.code '0') | 'a'..'f' -> (Char.code chr) - (Char.code 'a') + 10 | 'A'..'F' -> (Char.code chr) - (Char.code 'A') + 10 | _ -> assert false