axellang / axel

Haskell + Lisp
https://axellang.github.io
BSD 3-Clause "New" or "Revised" License
206 stars 9 forks source link

Haskell-restricted characters cannot be used in non-macro identifiers #71

Closed jgrosso closed 5 years ago

jgrosso commented 5 years ago

For type, class, etc. names that start with symbols, we'll need to escape them with an uppercase character; however, for function, argument, etc. names that start with symbols, we need to use lowercase characters. The Haskell Report requires type names to start with Unicode uppercase or titlecase characters, and value names to start with Unicode lowercase characters (or _). Unfortunately, caseless characters fulfill none of these requirements, I don't think.

Will we have to determine whether to use an uppercase or lowercase character based on where the identifiers is being used (i.e. in a type or not)?

EDIT: This issue will now be focused on value-level identifiers. For now, we'll disallow type-level identifiers from starting with symbols. See https://app.gitkraken.com/glo/board/Wunz108ztxUAEpyt/card/XY7tJWQStAAPtSHR.