Use a semantic ADT instead of Bool to represent character escape state