Adaptations

This trait provides logic for assessing the validity of argument
adaptations, such as tupling, unit-insertion, widening, etc. Such
logic is spread around the compiler, without much ability on the
part of the user to tighten the potentially dangerous bits.