disco-lang/disco

Identifiers with `not` as a prefix do not parse correctly in expressions

byorgey opened this issue · 1 comments

They parse as not applied to something. For example:

Disco> nottrue : Int
Disco> nottrue = 5
Disco> nottrue
false
Disco> :names
it : Bool
nottrue : ℤ

Clearly they only parse incorrectly in expressions. The type declaration and definition correctly parsed it as nottrue. But that makes sense since those productions are looking specifically for an identifier, not for a general expression.