cleaner and simpler type convertibility tests