@@ -483,7 +483,7 @@ parseVarOrNamedBinder = do
483483 -- TODO: once operator aliases are finalized in 0.9, this 'try' won't be needed
484484 -- any more since identifiers in binders won't be 'Op's.
485485 name <- P.try C.parseIdent
486− let parseNamedBinder = NamedBinder name <$> (at *> C.indented *> parseBinder)
486+ let parseNamedBinder = NamedBinder name <$> (at *> C.indented *> parseBinderAtom)
487487 parseNamedBinder <|> return (VarBinder name)
488488
489489parseNullBinder :: TokenParser Binder
@@ -515,26 +515,28 @@ parseBinder =
515515 return (BinaryNoParensBinder op)) P.AssocRight
516516 ]
517517 ]
518+
518519 -- TODO: parsePolyType when adding support for polymorphic types
519520 postfixTable = [ \b -> flip TypedBinder b <$> (indented *> doubleColon *> parseType)
520521 ]
521− parseBinderAtom :: TokenParser Binder
522− parseBinderAtom = P.choice
523− [ parseNullBinder
524− , LiteralBinder <$> parseCharLiteral
525− , LiteralBinder <$> parseStringLiteral
526− , LiteralBinder <$> parseBooleanLiteral
527− , parseNumberLiteral
528− , parseVarOrNamedBinder
529− , parseConstructorBinder
530− , parseObjectBinder
531− , parseArrayBinder
532− , ParensInBinder <$> parens parseBinder
533− ] P.<?> "binder"
534522
535523 parseOpBinder :: TokenParser Binder
536524 parseOpBinder = OpBinder <$> parseQualified (Op <$> symbol)
537525
526+parseBinderAtom :: TokenParser Binder
527+parseBinderAtom = P.choice
528+ [ parseNullBinder
529+ , LiteralBinder <$> parseCharLiteral
530+ , LiteralBinder <$> parseStringLiteral
531+ , LiteralBinder <$> parseBooleanLiteral
532+ , parseNumberLiteral
533+ , parseVarOrNamedBinder
534+ , parseConstructorBinder
535+ , parseObjectBinder
536+ , parseArrayBinder
537+ , ParensInBinder <$> parens parseBinder
538+ ] P.<?> "binder"
539+
538540-- |
539541-- Parse a binder as it would appear in a top level declaration
540542--