include module type of Exp
include module type of Type
type ('value, 'shape) typval integer : (unit, unit) typval real : (unit, unit) typval ushort : ('v, 'v) typval longlong : ('v, 'v) typval ulonglong : ('v, 'v) typval double : ('v, 'v) typval longdouble : ('v, 'v) typval ptr : ('v, 's) typ -> ('v, 'v) typval array : ?size:int -> ('v, 's) typ -> ('v, 's list) typval const : ('v, 's) typ -> ('v, 's) typval stdlib_generated : ('v, 's) typ -> ('v, 's) typtype const = [ | `const of const'
]type var = [ | `var of var'
]val of_int : int -> [> const ]val neg : [< exp ] -> [> exp ]val lognot : [< exp ] -> [> exp ]val bwnot : [< exp ] -> [> exp ]val succ : [< exp ] -> [> exp ]val add_int : [< exp ] -> int -> [> exp ]val modulo : [< exp ] -> [< exp ] -> [> exp ]val shiftl : [< exp ] -> [< exp ] -> [> exp ]val shiftr : [< exp ] -> [< exp ] -> [> exp ]val logand : [< exp ] -> [< exp ] -> [> exp ]val logor_list : [< exp ] list -> expval logand_list : [< exp ] list -> expval cast : ('v, 's) typ -> [< exp ] -> [> exp ]val fieldnamed : [< lval ] -> string -> [> lval ]val range : [< exp | `none ] -> [< exp | `none ] -> [> exp ]val whole_right : [> exp ]exception LogicInC of expexception CInLogic of expexception NotATerm of expexception NotAPredicate of expexception Typing_error of stringexception OutOfScope of stringtype instr = [ | `instr of instr'
]val local :
?ghost:bool ->
?init:'v ->
(init, 'v) typ ->
string ->
[> var ] * [> instr ]val local_copy :
?ghost:bool ->
?suffix:string ->
[< var ] ->
[> var ] * [> instr ]val sequence : [< stmt ] list -> [> stmt ]val if_ :
?ghost_else:bool ->
[< exp ] ->
then_:[< stmt ] list ->
else_:[< stmt ] list ->
[> stmt ]