summaryrefslogtreecommitdiff
path: root/src/mono.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-08-03 19:49:21 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-08-03 19:49:21 -0400
commit744cdbb9e3907db9bb01576750634c614147e1a3 (patch)
treeaecef31d4055d34a31977834cbda020811d1dfab /src/mono.sml
parent9a9f1738a8eae9df07f97da224cd9cf45033e9dc (diff)
Datatype representation optimization
Diffstat (limited to 'src/mono.sml')
-rw-r--r--src/mono.sml8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mono.sml b/src/mono.sml
index 7cc0dc78..b19f5af6 100644
--- a/src/mono.sml
+++ b/src/mono.sml
@@ -29,10 +29,12 @@ structure Mono = struct
type 'a located = 'a ErrorMsg.located
+datatype datatype_kind = datatype Core.datatype_kind
+
datatype typ' =
TFun of typ * typ
| TRecord of (string * typ) list
- | TDatatype of int * (string * int * typ option) list
+ | TDatatype of datatype_kind * int * (string * int * typ option) list
| TFfi of string * string
withtype typ = typ' located
@@ -45,7 +47,7 @@ datatype pat' =
PWild
| PVar of string * typ
| PPrim of Prim.t
- | PCon of patCon * pat option
+ | PCon of datatype_kind * patCon * pat option
| PRecord of (string * pat * typ) list
withtype pat = pat' located
@@ -54,7 +56,7 @@ datatype exp' =
EPrim of Prim.t
| ERel of int
| ENamed of int
- | ECon of patCon * exp option
+ | ECon of datatype_kind * patCon * exp option
| EFfi of string * string
| EFfiApp of string * string * exp list
| EApp of exp * exp