I would like the characters U+2032, U+2033, U+2034, and U+2057 to be excluded from uniSymbol in the rule for symbol, added to the rule for graphic, and added to the rules for varid and conid.

These rules currently are

```
graphic → small | large | symbol | digit | special | " | '
symbol → ascSymbol | uniSymbol<special | _ | " | '>
varid → (small {small | large | digit | '})<reservedid>
conid → large {small | large | digit | '}
```

With this proposal they would become

```
prime → ' | ′ | ″ | ‴ | ⁗ // U+0027,U+2032,U+2033,U+2034,U+2057
graphic → small | large | symbol | digit | special | " | prime
symbol → ascSymbol | uniSymbol<special | _ | " | prime>
varid → (small {small | large | digit | prime})<reservedid>
conid → large {small | large | digit | prime}
```

These rules treat the Unicode primes exactly the same as an apostrophe when found in identifiers.

GHC should allow the (single/double/triple/quadruple) prime characters in Unicode to be allowed in identifiers. This would make them consistent with the ASCII apostrophe, which is usually used in place of a single prime. The current workaround for primes (using one or more apostrophes) is unwieldy for higher primes (e.g. `a'''`

and `a''''`

).

All of the following identifiers should be valid.

```
a' // U+0027 APOSTROPHE
a′ // U+2032 PRIME
a″ // U+2033 DOUBLE PRIME
a‴ // U+2034 TRIPLE PRIME
a⁗ // U+2057 QUADRUPLE PRIME
```

Trac field | Value |
---|---|

Version | 7.10.2 |

Type | FeatureRequest |

TypeOfFailure | OtherFailure |

Priority | low |

Resolution | Unresolved |

Component | Compiler (Parser) |

Test case | |

Differential revisions | |

BlockedBy | |

Related | |

Blocking | |

CC | |

Operating system | |

Architecture |