Module Ast.Ast_types
module type ID = sig ... endAn abstract type for identifiers
module Class_name : IDmodule Capability_name : IDmodule Field_name : IDmodule Method_name : IDmodule Function_name : IDtype mode=Define modes for data references
type type_expr=|TEInt|TEClass of Class_name.t * type_expr optionoptionally specify type parameters - for generic classes
|TEVoid|TEBool|TEGenericDefine types of expressions in Bolt programs
type field_defn=|TField of modifier * type_expr * Field_name.t * Capability_name.t listClass Field declarations are of the form "modifier type name : capabilities" e.g. const int f : cap_1
type capability=|TCapability of mode * Capability_name.tCapabilities consist of a mode and a name
type param=|TParam of type_expr * Var_name.t * Capability_name.t list option * borrowed_ref optionParameter of a function can optionally restrict capabilities used, and may be "borrowed".
type bin_op=|BinOpPlus|BinOpMinus|BinOpMult|BinOpIntDiv|BinOpRem|BinOpLessThan|BinOpLessThanEq|BinOpGreaterThan|BinOpGreaterThanEq|BinOpAnd|BinOpOr|BinOpEq|BinOpNotEqtype un_op=|UnOpNot|UnOpNeg
val string_of_loc : loc -> stringval string_of_mode : mode -> stringval string_of_cap : capability -> stringval string_of_modifier : modifier -> stringval string_of_type : type_expr -> stringval string_of_bin_op : bin_op -> stringval string_of_un_op : un_op -> stringval string_of_maybe_borrowed_ref : borrowed_ref option -> stringval string_of_maybe_generic : generic_type option -> stringval string_of_maybe_superclass : Class_name.t option -> string