fact: Definition firstExpect {T} (t : token) (p : parser T) : parser T := fun xs => match xs with | x::xs' => if string_dec x t then p xs' else NoneE ("expected '" ++ t ++ "'.") | [] => NoneE ("expected '" ++ t ++ "'.") end.
imports: Coq.Strings.String Coq.Strings.Ascii Coq.Arith.Arith Coq.Arith.EqNat Coq.Lists.List Maps Imp