open Types open Values type memory type t = memory type size = int32 (* number of pages *) type address = int64 type offset = int32 type count = int32 exception Type exception Bounds exception SizeOverflow exception SizeLimit exception OutOfMemory val page_size : int64 val alloc : memory_type -> memory (* raises Type, SizeOverflow, OutOfMemory *) val type_of : memory -> memory_type val size : memory -> size val bound : memory -> address val grow : memory -> size -> unit (* raises SizeLimit, SizeOverflow, OutOfMemory *) val load_byte : memory -> address -> int (* raises Bounds *) val store_byte : memory -> address -> int -> unit (* raises Bounds *) val load_bytes : memory -> address -> int -> string (* raises Bounds *) val store_bytes : memory -> address -> string -> unit (* raises Bounds *) val load_num : memory -> address -> offset -> num_type -> num (* raises Bounds *) val store_num : memory -> address -> offset -> num -> unit (* raises Bounds *) val load_num_packed : pack_size -> extension -> memory -> address -> offset -> num_type -> num (* raises Type, Bounds *) val store_num_packed : pack_size -> memory -> address -> offset -> num -> unit (* raises Type, Bounds *) val load_vec : memory -> address -> offset -> vec_type -> vec (* raises Bounds *) val store_vec : memory -> address -> offset -> vec -> unit (* raises Type, Bounds *) val load_vec_packed : pack_size -> vec_extension -> memory -> address -> offset -> vec_type -> vec (* raises Type, Bounds *)