@@ -73,13 +73,13 @@ parseConstructor = Constructor <$> C.properName
7373
7474parseCase :: I.IndentParser String () Value
7575parseCase = Case <$> P.between (C.reserved "case") (C.reserved "of") parseValue
76− <*> C.braces (C.semiSep parseCaseAlternative)
76+ <*> I.withPos (C.indentedBlock parseCaseAlternative)
7777
7878parseCaseAlternative :: I.IndentParser String () (Binder, Value)
7979parseCaseAlternative = (,) <$> (parseBinder <* C.lexeme (P.string "->")) <*> parseValue
8080
8181parseBlock :: I.IndentParser String () Value
82−parseBlock = Block <$> (C.braces $ P.many (parseStatement True))
82+parseBlock = Block <$> (C.braces $ I.withPos $ C.indentedBlock $ parseStatement True)
8383
8484parseValueAtom :: I.IndentParser String () Value
8585parseValueAtom = P.choice $ map P.try
@@ -147,7 +147,7 @@ parseAssignment requireSemi = do
147147 return $ Assignment tgt value
148148
149149parseManyStatements :: I.IndentParser String () [Statement]
150−parseManyStatements = C.braces $ P.many (parseStatement True)
150+parseManyStatements = C.braces $ I.withPos $ C.indentedBlock $ parseStatement True
151151
152152parseWhile :: I.IndentParser String () Statement
153153parseWhile = While <$> (C.reserved "while" *> C.parens parseValue)