Mercurial > urweb
comparison src/expl.sml @ 624:354800878b4d
Kind polymorphism through Explify
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 22 Feb 2009 16:32:56 -0500 |
parents | 588b9d16b00a |
children | 70cbdcf5989b |
comparison
equal
deleted
inserted
replaced
623:588b9d16b00a | 624:354800878b4d |
---|---|
35 | KName | 35 | KName |
36 | KUnit | 36 | KUnit |
37 | KTuple of kind list | 37 | KTuple of kind list |
38 | KRecord of kind | 38 | KRecord of kind |
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 | CModProj of int * string list * string | 52 | CModProj of int * string list * 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 |
85 | EModProj of int * string list * string | 92 | EModProj of int * string list * string |
86 | EApp of exp * exp | 93 | EApp of exp * exp |
87 | EAbs of string * con * con * exp | 94 | EAbs of string * con * con * exp |
88 | ECApp of exp * con | 95 | ECApp of exp * con |
89 | ECAbs of string * kind * exp | 96 | ECAbs of string * kind * exp |
97 | |
98 | EKAbs of string * exp | |
99 | EKApp of exp * kind | |
90 | 100 |
91 | ERecord of (con * exp * con) list | 101 | ERecord of (con * exp * con) list |
92 | EField of exp * con * { field : con, rest : con } | 102 | EField of exp * con * { field : con, rest : con } |
93 | EConcat of exp * con * exp * con | 103 | EConcat of exp * con * exp * con |
94 | ECut of exp * con * { field : con, rest : con } | 104 | ECut of exp * con * { field : con, rest : con } |