must yield undefined