From d15b53da1e73c2d52c45ea1402d78d84fd0c9ca5 Mon Sep 17 00:00:00 2001 From: William Ball Date: Sun, 8 Dec 2024 21:57:17 -0800 Subject: [PATCH] minor cleanup --- lib/Parser.hs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/Parser.hs b/lib/Parser.hs index 562325c..c41a26b 100644 --- a/lib/Parser.hs +++ b/lib/Parser.hs @@ -42,10 +42,8 @@ keywords = ["forall", "let", "in", "end", "fun", "def", "axiom", "section", "var pIdentifier :: Parser Text pIdentifier = try $ label "identifier" $ lexeme $ do - firstChar <- letterChar <|> char '_' - rest <- many $ alphaNumChar <|> char '_' - let ident = T.pack (firstChar : rest) - guard (ident `notElem` keywords) + ident <- T.pack <$> ((:) <$> (letterChar <|> char '_') <*> many (alphaNumChar <|> char '_')) + guard $ ident `notElem` keywords pure ident pVar :: Parser IRExpr @@ -154,9 +152,7 @@ pAppTerm = lexeme $ choice [pLAbs, pPAbs, pLet, pApp] pIRExpr :: Parser IRExpr pIRExpr = lexeme $ do e <- pAppTerm - option e $ do - _ <- symbol "->" <|> symbol "→" - Pi "" e Nothing <$> pIRExpr + option e $ (symbol "->" <|> symbol "→") >> Pi "" e Nothing <$> pIRExpr pAscription :: Parser IRExpr pAscription = lexeme $ try $ symbol ":" >> label "type" pIRExpr