ref: e9dc058f64936d6f28e09c702b73da82405757ef
parent: 3617e0f7af66ff17acfcb539b3862a5f60010a5b
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Mon Sep 18 20:03:55 EDT 2023
Use eoptional
--- a/src/MicroHs/Parse.hs
+++ b/src/MicroHs/Parse.hs
@@ -218,7 +218,7 @@
pBlock p = P.do
pSpec '{'as <- esepBy p (pSpec ';')
- optional (pSpec ';')
+ eoptional (pSpec ';')
pSpec '}'
pure as
@@ -246,7 +246,7 @@
pImportSpec =
let
pQua = (True <$ pKeyword "qualified") <|< pure False
- in ImportSpec <$> pQua <*> pUQIdentA <*> optional (pKeyword "as" *> pUQIdent)
+ in ImportSpec <$> pQua <*> pUQIdentA <*> eoptional (pKeyword "as" *> pUQIdent)
--------
-- Types
@@ -285,7 +285,7 @@
pTypeApp = P.do
f <- pAType
as <- emany pAType
- mt <- optional (pSymbol "::" *> pType)
+ mt <- eoptional (pSymbol "::" *> pType)
let
r = foldl EApp f as
pure $ maybe r (ESign r) mt
@@ -393,7 +393,7 @@
pExprApp = P.do
f <- pAExpr
as <- emany pAExpr
- mt <- optional (pSymbol "::" *> pType)
+ mt <- eoptional (pSymbol "::" *> pType)
let
r = foldl EApp f as
pure $ maybe r (ESign r) mt
--
⑨