On the Andr\'e--Oort conjecture