diff src/mono.sml @ 188:8e9f97508f0d

Datatype representation optimization
author Adam Chlipala <adamc@hcoop.net>
date Sun, 03 Aug 2008 19:49:21 -0400
parents 88d46972de53
children 890a61991263
line wrap: on
line diff
--- a/src/mono.sml	Sun Aug 03 19:01:16 2008 -0400
+++ b/src/mono.sml	Sun Aug 03 19:49:21 2008 -0400
@@ -29,10 +29,12 @@
 
 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 @@
          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 @@
          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