(** [RawChar] provides some convenient operations to work with Coq's standard [ascii] and [string] type, assuming they are extracted using [ExtrOcamlString]:  - [ascii] is extracted to [char]; - [string] is extracted to [char list].  *)
(* begin hide *)
From Coq.Strings Require Import
String Ascii.
From Coq.extraction Require Import
ExtrOcamlIntConv
ExtrOcamlString.
IO_Monad
IO_Pervasives.
Extraction Blacklist Bytes Pervasives String .
(* end hide *)
(** * Conversions *)
(** [ascii] and [int] *)
Parameter int_of_ascii : ascii -> int.
Parameter ascii_of_int : int -> ascii.

(* Specifications: *)
Axiom char_is_ascii : char = ascii.
Definition char_of_ascii : ascii -> char :=
match char_is_ascii in (_ = _ascii) return (_ascii -> char) with
| eq_refl => fun c => c
end.