Инициализация позиционного агрегата не может использоваться с записью, имеющей только один компонент, но это не означает, что вы не можете иметь запись с одним компонентом.
Значения типа записи указываются путем предоставления списка именованных полей. Правильный код для вашей функции get_foo
должен быть следующим:
function get_foo return Foo is
return (bar => 1);
end get_foo;
Вы также можете указать тип записи, используя выражение Foo'(bar => 1)
.
Использование списка именованных компонентов на практике лучше, чем позиционная инициализация. Вы можете забыть положение компонента, и оно не изменится, если вы добавите новое поле в вашу запись.