INTERFACE PZIntChain; IMPORT Rd, Wr; TYPE Point = ARRAY [0..1] OF INTEGER; T = ARRAY OF Point; PROCEDURE Trim(READONLY c: T; start, length: CARDINAL): REF T; (* Returns a new chain that is a copy of elements from "c[start]" to "c[start+length-1]". Assumes the chain is periodic, i.e. "c[i+n]=c[i]" for all "i", where "n=NUMBER(c)". *) TYPE ReadData = RECORD cmt: TEXT; c: REF T END; PROCEDURE Write(wr: Wr.T; cmt: TEXT; READONLY c: T); PROCEDURE Read(rd: Rd.T): ReadData; END PZIntChain.