@@ -73,13 +73,13 @@ parseConstructor = Constructor <$> C.properName
74parseCase :: I.IndentParser String () Value
74parseCase :: I.IndentParser String () Value
75parseCase = Case <$> P.between (C.reserved "case") (C.reserved "of") parseValue
75parseCase = Case <$> P.between (C.reserved "case") (C.reserved "of") parseValue
76− <*> C.braces (C.semiSep parseCaseAlternative)
76+ <*> I.withPos (C.indentedBlock parseCaseAlternative)
78parseCaseAlternative :: I.IndentParser String () (Binder, Value)
78parseCaseAlternative :: I.IndentParser String () (Binder, Value)
79parseCaseAlternative = (,) <$> (parseBinder <* C.lexeme (P.string "->")) <*> parseValue
79parseCaseAlternative = (,) <$> (parseBinder <* C.lexeme (P.string "->")) <*> parseValue
81parseBlock :: I.IndentParser String () Value
81parseBlock :: I.IndentParser String () Value
82−parseBlock = Block <$> (C.braces $ P.many (parseStatement True))
82+parseBlock = Block <$> (C.braces $ I.withPos $ C.indentedBlock $ parseStatement True)
84parseValueAtom :: I.IndentParser String () Value
84parseValueAtom :: I.IndentParser String () Value
85parseValueAtom = P.choice $ map P.try
85parseValueAtom = P.choice $ map P.try
@@ -147,7 +147,7 @@ parseAssignment requireSemi = do
147 return $ Assignment tgt value
147 return $ Assignment tgt value
149parseManyStatements :: I.IndentParser String () [Statement]
149parseManyStatements :: I.IndentParser String () [Statement]
150−parseManyStatements = C.braces $ P.many (parseStatement True)
150+parseManyStatements = C.braces $ I.withPos $ C.indentedBlock $ parseStatement True
152parseWhile :: I.IndentParser String () Statement
152parseWhile :: I.IndentParser String () Statement
153parseWhile = While <$> (C.reserved "while" *> C.parens parseValue)
153parseWhile = While <$> (C.reserved "while" *> C.parens parseValue)