From c7619a27f841d24b5acb4c99ed486e95bd5130d8 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Sun, 19 Jan 2025 22:46:39 +0100 Subject: Noodling on the type checker --- src/HSVIS/Parser.hs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/HSVIS/Parser.hs') 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 -- cgit v1.2.3-70-g09d2