typedef list[T] = ( count size, count capacity, T#[capacity]^ elements, ); typedef incomplete pair[T,U] = ( T first, U second, ); list[int] a; list[list[int]] b; pair[list[int],list[int]]^ c; pair[list[int],int] d; pair[pair[list[int],list[int]], pair[pair[int,int],list[int]]] e;