sig
type t = { te_desc : Type_expr.te_desc; mutable te_typ : Types.typ; }
and te_desc =
TEBool
| TEInt of Type_expr.int_annot
| TEFloat
| TEChar
| TEEvent
| TEName of string
| TEArray of Type_expr.type_index_expr * Type_expr.t
and int_annot =
TA_none
| TA_size of Type_expr.type_index_expr
| TA_range of Type_expr.type_index_expr * Type_expr.type_index_expr
and type_index_expr =
TEConst of int
| TEVar of string
| TEBinop of string * Type_expr.type_index_expr *
Type_expr.type_index_expr
val string_of_type_index : Type_expr.type_index_expr -> string
val string_of_int_annot : Type_expr.int_annot -> string
val string_of_type_expr : Type_expr.t -> string
end