MODULE Test; TYPE Elem = POINTER TO ElemDesc; ElemDesc = RECORD END; ElemMsg = RECORD END; CopyMsg = RECORD (ElemMsg) a : Elem; END; Alien = POINTER TO RECORD (ElemDesc) END; PROCEDURE HandleAlien (VAR msg: ElemMsg); BEGIN WITH msg: CopyMsg DO msg.a := NIL END END HandleAlien; END Test.