Mercurial > urweb
comparison src/elab.sml @ 623:588b9d16b00a
Start of kind polymorphism, up to the point where demo/hello elaborates with updated Basis/Top
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 22 Feb 2009 16:10:25 -0500 |
parents | 8998114760c1 |
children | 12b73f3c108e |
comparison
equal
deleted
inserted
replaced
622:d64533157f40 | 623:588b9d16b00a |
---|---|
38 | KTuple of kind list | 38 | KTuple of kind list |
39 | 39 |
40 | KError | 40 | KError |
41 | KUnif of ErrorMsg.span * string * kind option ref | 41 | KUnif of ErrorMsg.span * string * kind option ref |
42 | 42 |
43 | KRel of int | |
44 | KFun of string * kind | |
45 | |
43 withtype kind = kind' located | 46 withtype kind = kind' located |
44 | 47 |
45 datatype explicitness = | 48 datatype explicitness = |
46 Explicit | 49 Explicit |
47 | Implicit | 50 | Implicit |
59 | CNamed of int | 62 | CNamed of int |
60 | CModProj of int * string list * string | 63 | CModProj of int * string list * string |
61 | CApp of con * con | 64 | CApp of con * con |
62 | CAbs of string * kind * con | 65 | CAbs of string * kind * con |
63 | CDisjoint of auto_instantiate * con * con * con | 66 | CDisjoint of auto_instantiate * con * con * con |
67 | |
68 | CKAbs of string * con | |
69 | CKApp of con * kind | |
70 | TKFun of string * con | |
64 | 71 |
65 | CName of string | 72 | CName of string |
66 | 73 |
67 | CRecord of kind * (con * con) list | 74 | CRecord of kind * (con * con) list |
68 | CConcat of con * con | 75 | CConcat of con * con |
104 | EApp of exp * exp | 111 | EApp of exp * exp |
105 | EAbs of string * con * con * exp | 112 | EAbs of string * con * con * exp |
106 | ECApp of exp * con | 113 | ECApp of exp * con |
107 | ECAbs of explicitness * string * kind * exp | 114 | ECAbs of explicitness * string * kind * exp |
108 | 115 |
116 | EKAbs of string * exp | |
117 | EKApp of exp * kind | |
118 | |
109 | ERecord of (con * exp * con) list | 119 | ERecord of (con * exp * con) list |
110 | EField of exp * con * { field : con, rest : con } | 120 | EField of exp * con * { field : con, rest : con } |
111 | EConcat of exp * con * exp * con | 121 | EConcat of exp * con * exp * con |
112 | ECut of exp * con * { field : con, rest : con } | 122 | ECut of exp * con * { field : con, rest : con } |
113 | ECutMulti of exp * con * { rest : con } | 123 | ECutMulti of exp * con * { rest : con } |
114 | EFold of kind | |
115 | 124 |
116 | ECase of exp * (pat * exp) list * { disc : con, result : con } | 125 | ECase of exp * (pat * exp) list * { disc : con, result : con } |
117 | 126 |
118 | EError | 127 | EError |
119 | EUnif of exp option ref | 128 | EUnif of exp option ref |