[said Martin]

> "with type", to my knowledge was created for the GNAT for JVM compiler,
> JGNAT, and is documented there.

But GNAT and jgnat are the same fromt end, so it's also available
in "normal" GNAT.

> Another example of a GNAT extension is
> 'Unrestricted_Access, so you can get an access to a nested procedure.

Well, officially that's an implementation-dependent attribute, not
(strictly speaking) an extension. 'with type' is more interesting,
IMHO, because it's a _syntactic_ extension.

I'm not initimately familiar with every Ada compiler, but I don't
think I've seen a syntactic extension since the Intel 432 compiler,
which was pre-ANSI 1815A, and had some really interesting OO extensions.
There was a keyword 'refines', which produced the kind of subclassing
we now see with Ada 95 type extension.

That Intel compiler also preceded C++. I still have an RM for it.
> --Martin