Token package:ghc-lib-parser
Tokens embedded in the AST have an EpaLocation, unless they come from
generated code (e.g. by TH).
A token stored in the syntax tree. For example, when parsing a
let-expression, we store EpToken "let" and EpToken
"in". The locations of those tokens can be used to faithfully
reproduce (exactprint) the original program text.
With UnicodeSyntax, there might be multiple ways to write the
same token. For example an arrow could be either -> or
→. This choice must be recorded in order to exactprint such
tokens, so instead of EpToken "->" we introduce
EpUniToken "->" "→".