LichenTransforms:
CEDAR
DEFINITIONS =
BEGIN OPEN LichenDataStructure, LichenSetTheory;
Differentiate: PROC [design: Design, instances: RefSeq--of Vertex--] RETURNS [newCT: CellType];
Undifferentiate: PROC [design: Design, toType: CellType, fromTypes: RefSeq--of CellType--] RETURNS [changed: RefSeq--of Vertex--];
LowerChildren: PROC [design: Design, childType: CellType, sibber: Mapper--child b RefSeq (role b sibling: Vertex)--] RETURNS [gcs: RefSeq--role b grandchild--, children: Set--of Vertex--];
RaiseGrandchildren: PROC [design: Design, gcs: Set--of Vertex--] RETURNS [childType: CellType, sibber: Mapper--child b RefSeq (role b sibling: Vertex)--];
ExpandVertex: PROC [design: Design, child: Vertex];
ExpandChildren: PROC [design: Design, parent: CellType, flatten: BOOL ← FALSE];
Group: PROC [design: Design, parent: CellType, children: RefSeq--of Vertex--] RETURNS [newChild: Vertex, newType: CellType];
END.