=begin rakudoc

=TITLE Other Extensions

=SUBTITLE Shared extender-facing exceptions

=head1 Overview

Most extension work belongs in one of the focused guides:

=item L<Adding Formats|Adding-Formats>

=item L<Adding Walkers|Adding-Walkers>

=item L<Adding Sources/Destinations|Adding-Sources-Destinations>

=item L<Adjusting Strategies|Adjusting-Strategies>

=item L<Adjusting Transformers|Adjusting-Transformers>

The remaining extender-facing items in C<What-for-Who.md> are shared exception
classes that are not covered by the focused extension guides.

=head1 Query slang and Topic slang

Operator symbols live in L<Qwiratry::Query::Slang::Ops> and are re-exported by
L<Qwiratry::Query::Slang>. Universe operators and bare navigation under C<given>
need the Topic slang mixed into MAIN B<after> those operators are imported:

=begin code :lang<raku>
use Qwiratry::Query::Slang;
use Qwiratry::Query::Slang::Topic;
=end code

Do not put Topic activation in the same module that declares many C<infix>/C<prefix>
C<is export> operators: importing those operators registers categoricals that
refresh MAIN and can wipe a same-C<use> Topic mixin. Topic is RakuAST-only
(via C<Slangify>); legacy grammar is unsupported.

L<Qwiratry::Mold::Slang> already loads Ops and Topic so mold C<when> bodies can
use topic-based forms. Custom extension CUs that C<use> query operators and
rely on C<given>/bare nav should load Topic the same way.

=head1 X::Qwiratry::Operator

Extenders need this when they add operator-adjacent behavior and no more
specific exception fits. It carries operator type and query AST context, which
makes failures easier to diagnose.

Prefer a more specific exception when the failure clearly belongs to formats,
locations, walkers, or transformers.

=head1 X::Qwiratry::TypeCheck

Extenders need this when they add transformer, mold, or validation behavior
that enforces result type constraints.

Use it when an extension has an expected result type and the actual result does
not conform. This keeps type failures consistent with the rest of Qwiratry's
transformer system.

=end rakudoc
