Я хотел бы иметь производный тип a
, который пуст. Из этого производного типа я хотел бы определить дополнительные типы, расширяющие a. Предположим, что все эти расширения типа содержат некоторое имя процедуры generic
, value
, т.е. value => valuea1
, value => valuea2
и т. д.
Если затем я хочу передать переменные класса a какой-либо другой процедуре, мне нужно объявить соответствующий фиктивный аргумент этой процедуры с помощью class(a)
. Однако, если я это сделаю, то ссылка на value
фиктивного аргумента приведет к ошибке компиляции, потому что класс a на самом деле пуст - только расширения типа содержат процедуру.
Предположительно, я мог бы обойти это, используя некоторую процедуру с именем value
внутри определения типа a (затем переопределяя в расширениях). Однако, учитывая, что я никогда не хочу объявлять какой-либо объект с типом a, это выглядит беспорядочно. Можно ли обойти это?