LowPriorityConversionCheckedConstraint

Provides an implicit conversion that will be applied only if a higher-priority implicit conversion declared a subtrait
is not applicable.

The purpose of this trait is to make the === operator symetric. In other words, a === invocation
will be allowed if an implicit conversion exists in either direction. For example, the implicit widening conversion from
Int to Long will be applied on the left hand side in this expression:

1 === 1L

But in the next expression, it will be applied on the right hand side:

The reason these two implicit methods aren't both declared in the subtraits is
that if implicit conversions were available in both directions, they would conflict. By placing one of them in this supertrait, the higher
priority conversion will be selected.

Provides a Constraint[A, B] for any two types A and B, enforcing the type constraint
that B must be a subtype of A, given an explicitEquivalence[A].

Provides a Constraint[A, B] for any two types A and B, enforcing the type constraint
that B must be a subtype of A, given an explicitEquivalence[A].

This method is used to enable the Explicitly DSL for
TypeCheckedTripleEquals by requiring an explicit Equivalance[B], but
taking an implicit function that provides evidence that A is a subtype of B. For example, under TypeCheckedTripleEquals,
this method (as an implicit method), would be used to compile this statement:

Provides a Constraint[A, B] class for any two types A and B, enforcing the type constraint that B is
implicitly convertible to A, given an explicitEquivalence[A].

Provides a Constraint[A, B] class for any two types A and B, enforcing the type constraint that B is
implicitly convertible to A, given an explicitEquivalence[A].

This method is used to enable the Explicitly DSL for
ConversionCheckedTripleEquals by requiring an explicit Equivalance[A], but
taking an implicit function that converts from B to A. For example, under ConversionCheckedTripleEquals,
this method (as an implicit method), would be used to compile this statement: