Mercurial > urweb
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 } |