WIP type-checking
[tiger.ml.git] / compiler / src / lib / tiger / tiger_env_type.mli
index 825750c..faeb84a 100644 (file)
@@ -7,13 +7,15 @@ type t =
   | String
   | Record of
       { unique : unique
-      ; fields : (Tiger_symbol.t * t) list
+      ; fields : record_fields
       }
   | Array of
       { unique : unique
       ; ty     : t
       }
   | Name of Tiger_symbol.t * t option ref
+and record_fields =
+  (Tiger_symbol.t * t) list
 
 type env =
   (Tiger_symbol.t, t ) Tiger_map.t
@@ -21,11 +23,16 @@ type env =
 val built_in : env
 
 val is_equal  : t -> t -> bool
-val is_record : t -> bool
+
 val is_int    : t -> bool
+val is_string : t -> bool
+val is_array  : t -> bool
+val is_record : t -> bool
 val is_name   : t -> bool
 
-val new_record : (Tiger_symbol.t * t) list -> t
+val if_record : t -> f:(record_fields -> 'a) -> otherwise:(unit -> 'a) -> 'a
+
+val new_record : record_fields -> t
 val new_array  : t -> t
 
 val to_string : t -> string
This page took 0.018338 seconds and 4 git commands to generate.