Every driver of a motor vehicle on a street shall drive the same at a careful and prudent speed not greater than nor less than is reasonable and proper, having due regard to the traffic, surface and width of the street and of any other conditions then existing, and no person shall drive a vehicle on any street at a speed greater than will permit the driver to bring it to a stop within the assured clear distance ahead, that driver having the right to assume, however, that all persons using the street will observe the law.
(Iowa Code § 321.285) (1999 Code, § 63.01)