diff options
author | Adam Chlipala <adamc@hcoop.net> | 2009-02-22 16:10:25 -0500 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2009-02-22 16:10:25 -0500 |
commit | ef4284bc3cf37e2f32ae2faddf07b4b8ed01ddac (patch) | |
tree | 7f9fc4189681a0186e8ecbfcc84a0eec50d03be9 /src/elab.sml | |
parent | fdff38cbee53e566859c55bf9a9410396a3a00ab (diff) |
Start of kind polymorphism, up to the point where demo/hello elaborates with updated Basis/Top
Diffstat (limited to 'src/elab.sml')
-rw-r--r-- | src/elab.sml | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/elab.sml b/src/elab.sml index ec8a910a..9ec3793e 100644 --- a/src/elab.sml +++ b/src/elab.sml @@ -40,6 +40,9 @@ datatype kind' = | KError | KUnif of ErrorMsg.span * string * kind option ref + | KRel of int + | KFun of string * kind + withtype kind = kind' located datatype explicitness = @@ -62,6 +65,10 @@ datatype con' = | CAbs of string * kind * con | CDisjoint of auto_instantiate * con * con * con + | CKAbs of string * con + | CKApp of con * kind + | TKFun of string * con + | CName of string | CRecord of kind * (con * con) list @@ -106,12 +113,14 @@ datatype exp' = | ECApp of exp * con | ECAbs of explicitness * 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 | ECut of exp * con * { field : con, rest : con } | ECutMulti of exp * con * { rest : con } - | EFold of kind | ECase of exp * (pat * exp) list * { disc : con, result : con } |