data specification using intnat , array ring_buffer := mk( . .data : array; . .size : int; . .first : int; . .len : int); variables buf : ring_buffer; end data specification