comparison src/core.sml @ 177:5d030ee143e2

Case through corify
author Adam Chlipala <adamc@hcoop.net>
date Sat, 02 Aug 2008 11:15:32 -0400
parents 80192edca30d
children d11754ffe252
comparison
equal deleted inserted replaced
176:33d4a8eea484 177:5d030ee143e2
57 57
58 | CUnit 58 | CUnit
59 59
60 withtype con = con' located 60 withtype con = con' located
61 61
62 datatype patCon =
63 PConVar of int
64 | PConFfi of string * string
65
66 datatype pat' =
67 PWild
68 | PVar of string
69 | PPrim of Prim.t
70 | PCon of patCon * pat option
71 | PRecord of (string * pat) list
72
73 withtype pat = pat' located
74
62 datatype exp' = 75 datatype exp' =
63 EPrim of Prim.t 76 EPrim of Prim.t
64 | ERel of int 77 | ERel of int
65 | ENamed of int 78 | ENamed of int
79 | ECon of int * exp option
66 | EFfi of string * string 80 | EFfi of string * string
67 | EFfiApp of string * string * exp list 81 | EFfiApp of string * string * exp list
68 | EApp of exp * exp 82 | EApp of exp * exp
69 | EAbs of string * con * con * exp 83 | EAbs of string * con * con * exp
70 | ECApp of exp * con 84 | ECApp of exp * con
72 86
73 | ERecord of (con * exp * con) list 87 | ERecord of (con * exp * con) list
74 | EField of exp * con * { field : con, rest : con } 88 | EField of exp * con * { field : con, rest : con }
75 | ECut of exp * con * { field : con, rest : con } 89 | ECut of exp * con * { field : con, rest : con }
76 | EFold of kind 90 | EFold of kind
91
92 | ECase of exp * (pat * exp) list * con
77 93
78 | EWrite of exp 94 | EWrite of exp
79 95
80 | EClosure of int * exp list 96 | EClosure of int * exp list
81 97