Only if you enforced a Restriction (No_Unchecked_Deallocation_Instances)! Otherwise, you have two mechanisms to do the same thing, which is even less easy to track. And of course, you couldn't usefully do that in existing Ada code (of which there is a lot). 'Free makes more sense in a new language (an Ada follow-on). OTOH, an Ada follow-on would most likely have access types with automatic deallocation as proposed by Tucker in one of the many AIs on ownership. So using any form of explicit deallocation would be discouraged (as would the use of raw pointer types). Randy. "Gautier write-only address" wrote in message news:3d6e49b6-f195-4dc2-bf4b-795f18f2da9dn@googlegroups.com... Le dimanche 18 avril 2021 à 17:14:13 UTC+2, J-P. Rosen a écrit : > I meant it the other way round: if the module has no "with > unchecked_deallocation", you know it does not deallocate anything, > without looking at the entire body. Not at all: the instantiation can be defined of in another package - and it is often the case - with any name (Free, Dispose, ...). So actually with the present way it is difficult to track where unchecked deallocation is used, plus it is tedious for the programmers. The P'Free atttribute or the "unchecked_free P;" statement would be straightforward to track.