diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-08-03 09:26:49 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-08-03 09:26:49 -0400 |
commit | 5e0563d3b00303d5053827e46811c93077455208 (patch) | |
tree | 84de1a0972562b31942273587987b2a27f615d8b /src/mono.sml | |
parent | 49c123050b2bc8a24f250fcc0d55e49484bc604c (diff) |
First part of getting cases through monoize
Diffstat (limited to 'src/mono.sml')
-rw-r--r-- | src/mono.sml | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mono.sml b/src/mono.sml index b1636775..7ed1aca1 100644 --- a/src/mono.sml +++ b/src/mono.sml @@ -37,10 +37,24 @@ datatype typ' = withtype typ = typ' located +datatype patCon = + PConVar of int + | PConFfi of string * string + +datatype pat' = + PWild + | PVar of string + | PPrim of Prim.t + | PCon of patCon * pat option + | PRecord of (string * pat) list + +withtype pat = pat' located + datatype exp' = EPrim of Prim.t | ERel of int | ENamed of int + | ECon of int * exp option | EFfi of string * string | EFfiApp of string * string * exp list | EApp of exp * exp @@ -49,6 +63,8 @@ datatype exp' = | ERecord of (string * exp * typ) list | EField of exp * string + | ECase of exp * (pat * exp) list * typ + | EStrcat of exp * exp | EWrite of exp |