diff options
Diffstat (limited to 'src/elab.sml')
-rw-r--r-- | src/elab.sml | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/elab.sml b/src/elab.sml index b258d7e5..48790a15 100644 --- a/src/elab.sml +++ b/src/elab.sml @@ -71,6 +71,17 @@ datatype con' = withtype con = con' located +datatype patCon = + PConVar of int + | PConProj of int * string list * string + +datatype pat' = + PWild + | PVar of string + | PCon of patCon * pat option + +withtype pat = pat' located + datatype exp' = EPrim of Prim.t | ERel of int @@ -86,6 +97,8 @@ datatype exp' = | ECut of exp * con * { field : con, rest : con } | EFold of kind + | ECase of exp * (pat * exp) list * con + | EError withtype exp = exp' located |