summaryrefslogtreecommitdiff
path: root/src/Parser
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-08-27 21:07:20 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-08-27 23:04:38 +0200
commit880c36a666e3ee36066719a09a5294be2cfa3e93 (patch)
tree9401ebb95540c983cb910ec2d7b65218c4901d23 /src/Parser
parent0cbbe31c5f16df73dcc3a73b37cac4a72948f3a6 (diff)
Parse list types in type expressionHEADmaster
Diffstat (limited to 'src/Parser')
-rw-r--r--src/Parser/Expr.hs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Parser/Expr.hs b/src/Parser/Expr.hs
index 4603dda..89fa208 100644
--- a/src/Parser/Expr.hs
+++ b/src/Parser/Expr.hs
@@ -560,5 +560,12 @@ applyFunctionArguments args sexpr@(SomeExpr (expr :: Expr a))
typeExpr :: TestParser SomeExprType
typeExpr = do
off <- stateOffset <$> getParserState
- name <- constrName <?> "type constructor name"
- lookupType off name
+ choice
+ [ do
+ name <- constrName <?> "type constructor name"
+ lookupType off name
+ , do
+ between (symbol "[") (symbol "]") $ do
+ inner <- typeExpr
+ return $ ExprTypeApp (ExprTypeConstr1 (Proxy :: Proxy [])) [ inner ]
+ ]