summaryrefslogtreecommitdiff
path: root/src/expl.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-02-22 16:32:56 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-02-22 16:32:56 -0500
commit85c5fc291ece27b13a28a3ec50b67ff437a18834 (patch)
tree9720fe837fa35bd4404d0013f77da0e0a51584ae /src/expl.sml
parent85cf99a95c910841f197ca911bb13d044456de7f (diff)
Kind polymorphism through Explify
Diffstat (limited to 'src/expl.sml')
-rw-r--r--src/expl.sml10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/expl.sml b/src/expl.sml
index 0101dd1f..d7138620 100644
--- a/src/expl.sml
+++ b/src/expl.sml
@@ -37,6 +37,9 @@ datatype kind' =
| KTuple of kind list
| KRecord of kind
+ | KRel of int
+ | KFun of string * kind
+
withtype kind = kind' located
datatype con' =
@@ -50,6 +53,10 @@ datatype con' =
| CApp of con * con
| CAbs of string * kind * con
+ | CKAbs of string * con
+ | CKApp of con * kind
+ | TKFun of string * con
+
| CName of string
| CRecord of kind * (con * con) list
@@ -88,6 +95,9 @@ datatype exp' =
| ECApp of exp * con
| ECAbs of string * kind * exp
+ | EKAbs of string * exp
+ | EKApp of exp * kind
+
| ERecord of (con * exp * con) list
| EField of exp * con * { field : con, rest : con }
| EConcat of exp * con * exp * con