Modula-2: x^ is variant record
IF (x^.varpar # y^.varpar) OR ((x^.typ # y^.typ) &
((x^.typ^.form # Array) OR NOT x^.typ^.dyn OR
(y^.typ^.form # Array) OR NOT y^.typ^.dyn OR
(x^.typ^.ElemTyp # y^.typ^.ElemTyp))) THEN error
END
Cedar: x^ has REF ANY connection x^.ext
IF (x^.varpar) # (y^.varpar)
THEN error
ELSE
IF x^.typ # y^.typ
THEN
IF (x^.typ^.form # Array)
OR (y^.typ^.form # Array)
THEN error
ELSE
{ xarray: M2D.ArrayPtr ←
NARROW [x^.typ^.ext];
yarray: M2D.ArrayPtr ←
NARROW [y^.typ^.ext];
IF
NOT xarray^.dyn
OR
NOT yarray^.dyn
OR
(xarray^.ElemTyp # yarray^.ElemTyp) THEN error