Proper generic parameters with NULL handling