I think that the ‘usual’ method names of Option would only confuse people. I don’t want us to build clever little footguns to trip up other programmers.
If we really want one, the method on bool should have a completely different name than any Option method, as to minimize confusion. On the other hand, the name should be short and meaningful.
My .02$:
_.and_some(_)
_.as_opt(_)
_.some(_)
_.then(_)
_.opt(_)
Currently, then would be my favourite name. Similar enough to and_then, yet different enough not to be confused.
By the way, how strong does negation bind? I’d hate to see someone complaining because !b.then(x) didn’t work as expected…
Edit: method application binds more strongly than bool negation: http://is.gd/QHpi1c – yes, removing parenthesis just results in a (somewhat understandable) compiler error. Still, this is a footgun.