Why is scanr strict in its third argument?