diff options
author | Tom Smeding <tom@tomsmeding.com> | 2025-01-19 22:46:39 +0100 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2025-01-19 22:46:39 +0100 |
commit | c7619a27f841d24b5acb4c99ed486e95bd5130d8 (patch) | |
tree | 9aae2e1c9665b83090e1c3d80f71c0b9fdffea34 /src/HSVIS/Parser.hs | |
parent | e13b0a681108697f8b67d8c836edd54c042aad55 (diff) |
Noodling on the type checker
Diffstat (limited to 'src/HSVIS/Parser.hs')
-rw-r--r-- | src/HSVIS/Parser.hs | 10 |
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 |