comparison src/core.sml @ 626:230654093b51

demo/hello compiles with kind polymorphism
author Adam Chlipala <adamc@hcoop.net>
date Sun, 22 Feb 2009 17:17:01 -0500
parents 588b9d16b00a
children 70cbdcf5989b
comparison
equal deleted inserted replaced
625:47947d6e9750 626:230654093b51
35 | KName 35 | KName
36 | KRecord of kind 36 | KRecord of kind
37 | KUnit 37 | KUnit
38 | KTuple of kind list 38 | KTuple of kind list
39 39
40 | KRel of int
41 | KFun of string * kind
42
40 withtype kind = kind' located 43 withtype kind = kind' located
41 44
42 datatype con' = 45 datatype con' =
43 TFun of con * con 46 TFun of con * con
44 | TCFun of string * kind * con 47 | TCFun of string * kind * con
47 | CRel of int 50 | CRel of int
48 | CNamed of int 51 | CNamed of int
49 | CFfi of string * string 52 | CFfi of string * string
50 | CApp of con * con 53 | CApp of con * con
51 | CAbs of string * kind * con 54 | CAbs of string * kind * con
55
56 | CKAbs of string * con
57 | CKApp of con * kind
58 | TKFun of string * con
52 59
53 | CName of string 60 | CName of string
54 61
55 | CRecord of kind * (con * con) list 62 | CRecord of kind * (con * con) list
56 | CConcat of con * con 63 | CConcat of con * con
89 | EApp of exp * exp 96 | EApp of exp * exp
90 | EAbs of string * con * con * exp 97 | EAbs of string * con * con * exp
91 | ECApp of exp * con 98 | ECApp of exp * con
92 | ECAbs of string * kind * exp 99 | ECAbs of string * kind * exp
93 100
101 | EKAbs of string * exp
102 | EKApp of exp * kind
103
94 | ERecord of (con * exp * con) list 104 | ERecord of (con * exp * con) list
95 | EField of exp * con * { field : con, rest : con } 105 | EField of exp * con * { field : con, rest : con }
96 | EConcat of exp * con * exp * con 106 | EConcat of exp * con * exp * con
97 | ECut of exp * con * { field : con, rest : con } 107 | ECut of exp * con * { field : con, rest : con }
98 | ECutMulti of exp * con * { rest : con } 108 | ECutMulti of exp * con * { rest : con }