Доброго времени суток, господа.
У меня ест ьтакой вопрос: я создал процедуру добавления элемента в начало списка.
## Код:
```
PROCEDURE AddToList (VAR head: ANYPTR; elem: ANYPTR);
BEGIN
   WITH head : PFodder DO
         WITH elem: PFodder DO
            elem.next := head;
            head := elem;      
         END;
      |   head: PMineralSubstance DO
         WITH elem: PMineralSubstance DO
            elem.next := head;
            head := elem;      
         END;
      END;      
END AddToList;
```


Так вот. В коде программы я пишу:
## Код:
```
AddToList(head,p);
```


head и p в данном случае - PFodder.
Как мне думается, если Fodder является потомком ANYREC, то все должно быть хорошо. А на самом деле возникает ошибка несоответствия типов параметров - фактического и формального. Я подозреваю что это связано с тегами, но  в данном случае не очень понятно, можно ли этого избежать?