type compatibility