Agree that it's not all that nice, but couldn't come up with something better.  Any suggestions on how to do this? 

Basically, `None` means "I don't know, please figure it out for me.".  Once computed, it can be passed to the recursive call below.