add XSemantics system for coercion
use coercion in interpretation where applicable
remove no longer needed NumberHelper.equality
before coercing, any generic types must be replaced by the actual types