Question on how to cleanly refer to extension system classes
From the manual, section "6.2 A more involved example":
You should only use 'in-package' (and before it, a 'defpackage') when you're going to define new classes, functions, variables, macros, etc., in the '.asd' file, and want to thereby avoid name clashes. Manuals for old versions of ASDF recommended use of such an idiom in '.asd' files, but as of ASDF 3, we recommend that you don't do that anymore, and instead define any ASDF extensions in their own system, on which you can then declare a dependency using ':defsystem-depends-on
But to use custom system classes, we must
For such class names in the ASDF package, we recommend that the ':class' option be specified using a keyword symbol, such as
:class :MY-NEW-SYSTEM-SUBCLASS
This practice will ensure that package name conflicts are avoided. Otherwise, the symbol 'MY-NEW-SYSTEM-SUBCLASS' will be read into the current package before it has been exported from the ASDF extension loaded by ':defsystem-depends-on', causing a name conflict in the current package.
From that, I understand that to use the my-extension-system
custom class, we should be in the my-extension-asdf
package, which goes against the first quotation.
Did I miss something? What's the recommended practice then?