I don’t like to accuse people of racism. That word is used far too often, unjustly, to smear good men and women. It has been thrown at House Speaker Paul Ryan, Sen. John McCain, former Gov. Mitt Romney, and other decent conservatives. It has been attributed to anyone who defends law enforcement or opposes a government program. When everyone on the right is a white nationalist or white supremacist, these terms lose their meaning.

But Donald Trump is a racist. He meets what Ryan himself once called the “textbook definition” of racism. Trump singles out particular ethnic, racial, and religious groups for suspicion. He holds all members of these groups responsible for the misdeeds of other members. He casts aspersions on individuals based on creed and background. And he explicitly advocates discrimination. If these behaviors don’t define bigotry, nothing does.

Let’s give Trump the benefit of the doubt in every case where his conduct could be explained, even implausibly, by something other than prejudice. Housing discrimination by his father’s company? Young Donald wasn’t directly involved. The Central Park Five? He thought they were guilty. Questioning Barack Obama’s birthplace? Trump just wanted to be thorough. His failure to denounce David Duke? Trump couldn’t hear the question. Calling the removal of Confederate statues an attack on “our culture”? He meant we should own our history. Calling Sen. Elizabeth Warren “Pocahontas”? He’s being ironic. Hounding NFL players who kneel? He feels strongly about the national anthem.

Set aside all of that, and you’re still left with four patterns that can’t be explained away.

The first is Trump’s habit of associating certain ethnic or religious groups with violence. In 2013, he targeted blacks, writing on Twitter that “the overwhelming amount of violent crime in our major cities is committed by blacks and hispanics.” He also retweeted fake black-on-white crime data. In 2015, he kicked off his presidential campaign with a tirade against Mexican immigrants: “They’re bringing drugs. They’re bringing crime. They’re rapists. And some, I assume, are good people.” Later that year, Trump claimed to have seen thousands of people cheering the 9/11 attacks in northern New Jersey, “where you have large Arab populations.” In each case, Trump imagined or misrepresented the threat. He never does this to whites.

Within these groups, Trump blames the innocent for failing to control the guilty. He has held Barack Obama responsible for black crime, explicitly because Obama is black. “President Obama has absolutely no control (or respect) over the African American community” Trump wrote in 2014 during the riots in Ferguson, Missouri. A year later, Trump jeered, “Our great African American President hasn’t exactly had a positive impact on the thugs who are so happily and openly destroying Baltimore!” In 2016, after the Orlando massacre, Trump falsely charged that “the Muslim community does not report” its extremists. He concluded that Muslims should be punished collectively for such incidents: “The Muslims are the ones that have to report them. And if they don’t report them, then there have to be consequences to them.” Trump refuses to apply this policy of collective responsibility to whites. After Charlottesville, he argued just the opposite: that “very fine people” shouldn’t be faulted for rallying with Nazis.

Trump has persistently cast aspersions on particular people based on race, ethnicity, or religion. He suggested to evangelicals that they couldn’t trust Ted Cruz because Cruz’s family came from Cuba. He suggested to Protestants that they couldn’t trust Ben Carson because Carson is a Seventh-day Adventist. He retweeted an allegation that Jeb Bush “has to like the Mexican illegals because of his wife,” who is Mexican American. At rallies and in TV interviews, Trump charged that Gonzalo Curiel, the Indiana-born federal judge presiding over the Trump University fraud case, was incorrigibly biased against him because “we’re building a wall. He’s a Mexican.”

The clearest standard of bigotry is advocating differential treatment based on race, sex, ethnicity, or religion. Trump has done that repeatedly. In 2013, he dismissed the military’s integration of women as a stupid mistake, arguing that it had led to sexual assaults. In 2015, he demanded a “complete shutdown of Muslims entering the United States.” In 2016, he warned that Muslim migrants were too dangerous because once they were allowed into the United States, they might proselytize for Islam, and there was “no way” to “prevent the second generation from radicalizing.” In his attacks on Curiel, Trump reasoned that no judge “of Mexican heritage” could fairly preside over his fraud case, because such ancestry entailed “an inherent conflict of interest.”

This behavior has continued in office. During an Oval Office meeting last summer, according to the New York Times, Trump complained that Haitians coming to the United States “all have AIDS.” He also warned that people from Nigeria, if they were allowed into our country, would never “go back to their huts.” Six weeks ago, Trump retweeted messages from a hate group, which by their plain language (“Muslim destroys a statue of Virgin Mary!” “Muslim migrant beats up Dutch boy on crutches!”) sought to incite anger against all Muslims.

The White House denied the Times report about Haitians and Nigerians. But now there’s confirmation, from a Democratic senator, a Republican senator, and others who attended or were briefed, that Trump made similar remarks in an Oval Office meeting with lawmakers on Thursday. During a back-and-forth about migrants from Haiti, El Salvador, and Africa, Trump fumed: “Why are we having all these people from shithole countries come here?” He specifically asked, “Why do we need more Haitians?” He demanded that Congress “take them out” of a list of immigrant populations temporarily allowed to stay in the United States. Instead, he said the United States should accept more people from countries such as Norway.

Trump disputes his exact language in the meeting. But on Friday morning, in a series of tweets, he affirmed his reasoning. “USA would be forced to take large numbers of people from high crime countries which are doing badly,” he wrote. “I want a merit based system of immigration and people who will help take our country to the next level.”

What Trump is proposing, as sketched in his own tweets, is not a merit-based system. A merit-based system would accept or reject applicants based their own merits. Trump is saying that applicants should be accepted or rejected based on country of origin. He’s saying that the individual should be judged by the group. If you’re Haitian, you’re out.

That’s bigotry. It’s not some left-wing activist’s definition of bigotry. It’s the textbook definition. And while quotas by nationality are common in immigration policy, it’s hard to explain why Trump thinks and talks this way on so many other issues, not just about foreigners but about Americans. He has been doing it for years to every group with whom he doesn’t identify: blacks, Latinos, Muslims, Seventh-day Adventists, Cuban Americans, Mexican Americans, Arab Americans, Korean Americans, and women.

A president who keeps saying bigoted things and pushing bigoted ideas, despite repeated warnings, is a bigot. A party that continues to excuse him is a bigoted party. And a country that accepts him is a bigoted country. Don’t be that party. Don’t be that country.