
type global_env = 
    { structs   : (Popsyntax.type_name,Popsyntax.structdecl) Dict.dict;
      unions    : (Popsyntax.type_name,Popsyntax.uniondecl)  Dict.dict;
      abstracts : (Popsyntax.type_name,(Popsyntax.var list * bool)) Dict.dict;
      globals   : (Popsyntax.var,Popsyntax.typ) Dict.dict;
      exceptions: (Popsyntax.var,Popsyntax.typ) Dict.dict;
      open_prefixes: Popsyntax.var list
    } 

val type_check : 
    Popsyntax.top_decl list -> (Popsyntax.top_decl list) * global_env

(* Cyclone *)
val doesSpliceRet: Popsyntax.stmt -> bool
(* End Cyclone *)
