-
-
Notifications
You must be signed in to change notification settings - Fork 399
Closed
Labels
type: enhancementNew feature or requestNew feature or request
Description
Is your feature request related to a problem? Please describe.
The expression:
lexeme $ (:) <$> between '2' '9' <*> M.count 2 $ between '0' '9'
is evaluated as:
lexeme (((:) <$> between '2' '9' <*> M.count 2) (between '0' '9'))
because $
has lower precedence than <$>
and <*>
.
The intent is for the expression to be evaluated as:
lexeme $ (:) <$> between '2' '9' <*> M.count 2 (between '0' '9')
Describe the solution you'd like
To avoid these kind of errors, it will be very helpful to be able to see the parenthesized version of an expression.
Describe alternatives you've considered
An alternative is to aggressively parenthesize everything. That won't look pretty.
Another is to look up the precedence of each operator used in the expression. It can be time consuming for a complex expression.
Additional context
Originally discussed in this Reddit thread.
Metadata
Metadata
Assignees
Labels
type: enhancementNew feature or requestNew feature or request