@@ -345,7 +345,7 @@ parseValueAtom = P.choice
345 , P.try parseBooleanLiteral
345 , P.try parseBooleanLiteral
346 , parseArrayLiteral
346 , parseArrayLiteral
347 , P.try parseObjectLiteral
347 , P.try parseObjectLiteral
348− , parseObjectGetter
348+ , P.try parseObjectGetter
349 , parseAbs
349 , parseAbs
350 , P.try parseConstructor
350 , P.try parseConstructor
351 , P.try parseVar
351 , P.try parseVar
@@ -355,11 +355,11 @@ parseValueAtom = P.choice
355 , parseLet
355 , parseLet
356 , Parens <$> parens parseValue ]
356 , Parens <$> parens parseValue ]
358−parsePropertyUpdate :: TokenParser (String, Expr)
358+parsePropertyUpdate :: TokenParser (String, Maybe Expr)
359parsePropertyUpdate = do
359parsePropertyUpdate = do
360 name <- lname <|> stringLiteral
360 name <- lname <|> stringLiteral
361 _ <- C.indented *> equals
361 _ <- C.indented *> equals
362− value <- C.indented *> parseValue
362+ value <- C.indented *> (underscore *> pure Nothing) <|> (Just <$> parseValue)
363 return (name, value)
363 return (name, value)
365parseAccessor :: Expr -> TokenParser Expr
365parseAccessor :: Expr -> TokenParser Expr
@@ -398,7 +398,7 @@ parseValue = withSourceSpan PositionedValue
399 indexersAndAccessors = C.buildPostfixParser postfixTable1 parseValueAtom
399 indexersAndAccessors = C.buildPostfixParser postfixTable1 parseValueAtom
400 postfixTable1 = [ parseAccessor
400 postfixTable1 = [ parseAccessor
401− , \v -> P.try $ flip ObjectUpdate <$> (C.indented *> braces (commaSep1 (C.indented *> parsePropertyUpdate))) <*> pure v ]
401+ , \v -> P.try $ flip ObjectUpdater <$> (C.indented *> braces (commaSep1 (C.indented *> parsePropertyUpdate))) <*> pure v ]
402 postfixTable2 = [ \v -> P.try (flip App <$> (C.indented *> indexersAndAccessors)) <*> pure v
402 postfixTable2 = [ \v -> P.try (flip App <$> (C.indented *> indexersAndAccessors)) <*> pure v
403 , \v -> flip (TypedValue True) <$> (P.try (C.indented *> doubleColon) *> parsePolyType) <*> pure v
403 , \v -> flip (TypedValue True) <$> (P.try (C.indented *> doubleColon) *> parsePolyType) <*> pure v