aboutsummaryrefslogtreecommitdiff
path: root/src/HSVIS/Parser.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2025-01-19 22:46:39 +0100
committerTom Smeding <tom@tomsmeding.com>2025-01-19 22:46:39 +0100
commitc7619a27f841d24b5acb4c99ed486e95bd5130d8 (patch)
tree9aae2e1c9665b83090e1c3d80f71c0b9fdffea34 /src/HSVIS/Parser.hs
parente13b0a681108697f8b67d8c836edd54c042aad55 (diff)
Noodling on the type checker
Diffstat (limited to 'src/HSVIS/Parser.hs')
-rw-r--r--src/HSVIS/Parser.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/HSVIS/Parser.hs b/src/HSVIS/Parser.hs
index 0d35184..2110ca1 100644
--- a/src/HSVIS/Parser.hs
+++ b/src/HSVIS/Parser.hs
@@ -20,8 +20,8 @@ module HSVIS.Parser (
StageParsed,
parse,
-- * Staged AST synonyms
- PProgram, PDataDef, PFunDef, PFunEq, PType, PPattern, PRHS, PExpr,
- E(NoTypeSig),
+ PProgram, PDataDef, PFunDef, PTypeSig, PFunEq, PKind, PType, PPattern, PRHS, PExpr,
+ E(NoTypeSig, TForallP),
) where
-- import Control.Applicative
@@ -54,20 +54,22 @@ type instance X DataField StageParsed = ()
type instance X FunDef StageParsed = Range
type instance X TypeSig StageParsed = ()
type instance X FunEq StageParsed = Range
+type instance X Kind StageParsed = ()
type instance X Type StageParsed = Range
type instance X Pattern StageParsed = Range
type instance X RHS StageParsed = Range
type instance X Expr StageParsed = Range
data instance E TypeSig StageParsed = NoTypeSig deriving (Show)
-data instance E Type StageParsed deriving (Show)
+data instance E Type StageParsed = TForallP Name (Maybe PKind) PType deriving (Show)
data instance E Kind StageParsed deriving (Show)
type PProgram = Program StageParsed
type PDataDef = DataDef StageParsed
type PFunDef = FunDef StageParsed
--- type PTypeSig = TypeSig StageParsed
+type PTypeSig = TypeSig StageParsed
type PFunEq = FunEq StageParsed
+type PKind = Kind StageParsed
type PType = Type StageParsed
type PPattern = Pattern StageParsed
type PRHS = RHS StageParsed