Ok, it turns out I derped and somehow simpleChoices had either been reverted to the old calling standard, or I just never updated it (I thought I did?). Anyways, doYesNo() and simpleChoices were therefore trying to cast a function() to a number, which returned NaN and made all the things asplode. It seems to be working now. I'll test a bit more tomorrow, and then merge back into the master.