more accurate err, it doesn't detect mismatches on the right