(またまた予約語を再利用している......。アスペクトを書いた例です。回答例2も(自信がありませんが恐らく)これでいいです。実は回答例1に適用するにはこれだけでは駄目です。多くの言語では都合よく忘れられていることがあります。ヒープというのはグローバル変数なのです。ヒープをスレッドローカルなものとしてスレッド間のポインタ転送を禁止している言語もあります。Adaでもこの性質は忘れられておらず様々な制限となっています。型のownership検証が実装されました。Rust等で流行りのやつです。検索すると出てきます。それ以前にもμSPARK等が研究用として存在していました。2020でも最初はownership検証が検討されていましたが、機能を制限しているSPARKと異なりフルセットのAdaに持ち込むには余りにも難易度が高い話です。型の所有関係だけが採択されました。型が他の型の部品として使われることを示します。型を所有することを示します。型オブジェクトの変更と一体として扱われます。ルートにのみ付けます。回答例1に付けてみます。型は複数の変数が同じヒープオブジェクトを指すことを禁止されます。所有者は1つでなければならないからです。複数から所有させる意図がなくても一時的にでも代入ができないと困るときがあります。単純なリンクリストへの追加でも困ります。end;追加の過程で一時的に2つの変数が同じヒープオブジェクトを指すことになります。属性が追加されました。オブジェクト内でしたら複数から同じヒープオブジェクトを指すこともできるのではと思います。なければ双方向リンクリストが実装できなくなります。型への代入(変換)も許されるのではと思います。なければユーザー定義参照型も実装できずコンテナに支障がありますので。