@@ -345,7 +345,7 @@ parseValueAtom = P.choice
345345 , P.try parseBooleanLiteral
346346 , parseArrayLiteral
347347 , P.try parseObjectLiteral
348− , parseObjectGetter
348+ , P.try parseObjectGetter
349349 , parseAbs
350350 , P.try parseConstructor
351351 , P.try parseVar
@@ -355,11 +355,11 @@ parseValueAtom = P.choice
355355 , parseLet
356356 , Parens <$> parens parseValue ]
357357
358−parsePropertyUpdate :: TokenParser (String, Expr)
358+parsePropertyUpdate :: TokenParser (String, Maybe Expr)
359359parsePropertyUpdate = do
360360 name <- lname <|> stringLiteral
361361 _ <- C.indented *> equals
362− value <- C.indented *> parseValue
362+ value <- C.indented *> (underscore *> pure Nothing) <|> (Just <$> parseValue)
363363 return (name, value)
364364
365365parseAccessor :: Expr -> TokenParser Expr
@@ -398,7 +398,7 @@ parseValue = withSourceSpan PositionedValue
398398 where
399399 indexersAndAccessors = C.buildPostfixParser postfixTable1 parseValueAtom
400400 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 ]
402402 postfixTable2 = [ \v -> P.try (flip App <$> (C.indented *> indexersAndAccessors)) <*> pure v
403403 , \v -> flip (TypedValue True) <$> (P.try (C.indented *> doubleColon) *> parsePolyType) <*> pure v
404404 ]