Хочу реализовать обмен "сообщениями" между 2-мя компьютерами. Обрабатывать сообщения удобно таким способом:

## Код:
```
PROCEDURE (h: Handler) MsgReceived (IN msg: Msg);
BEGIN
    WITH msg: MsgA DO
        ...
    | msg: MsgB DO
        ...
    ...
    END
END MsgReceived;
```


а не таким:

## Код:
```
PROCEDURE MsgReceived (id: INTEGER; IN data: ARRAY OF BYTE; len: INTEGER);
BEGIN
    CASE id OF
    00H:
        ...
    | 01H:
        ...
    ...
    END
END MsgReceived;
```
