=begin pod

=TITLE class X::Composition::NotComposable

=SUBTITLE Compilation error due to composing an ineligible type

    class X::Composition::NotComposable is Exception { }

Thrown when trying to compose a type into a target type, but the composer type
cannot be used for composition (roles and enums are generally OK).

For example

    class A { }
    class B does A { }

dies with

    ===SORRY!===
    ␤A is not composable, so B cannot compose it

because C<does> is reserved for role composition, and C<A> is not a role,
nor something that knows how to turn into a role.

The fix is to either make C<A> a role, or use inheritance
(C<class B is A { }>) instead.

=head1 Methods

=head2 method target-name

    method target-name() returns Str:D

Returns the name of the type that should be composed, but failed.

=head2 method composer

    method composer() returns Mu

Returns the type that should be composed into the target, but which isn't a
role.

=end pod
