Можно ли абстактные методы типа описывать "только для реализации"? Ожидаемый эффект - замена наследования хранимых в контейнере данных  от общего базового типа данных, с которым умеет работать контейнер (в целях типизации) наследованием контейнера, уже умеющего работать с конкретным типом данных от базового контейнера, отвязанного от типа хранимых в нем данных, и предоставляющего только функциональность самого контейнера (сортировка, удаление, вставка и т.д.). Работа с типом хранимых данных реализуется в типе-наследнике через реализацию метода базового контейнера. Эта процедура описывается только для реализации и используется в контейнере-родителе в базовых методах. Реализуется процедура в контейнере-приемнике.
Пример:
Код:
TYPE
   ContainerNode* = POINTER TO RECORD
      data: ANYPTR;
      next: ContainerNode;
   END;
   Container* = POINTER TO ABSTRACT RECORD
      head: ContainerNode;
   END;
(* реализация методов работы с элементами контейнера, общих для всех типов наследников - добавление, удаление,
     сортировка и т.д.*)
  
 (*работу с конкретными хранимыми данными предлагается реализовать в модуле-клиенте переопределением
  этого метода*)
  PROCEDURE (this: Container) CreateNode-(data: ANYPTR): ContainerNode, NEW, ABSTRACT;