cons evaluates correctly in tests