I'm generally trying to remove complexity from the AST, and that means `if` statements are going to be removed if possible.

Ultimately, I'd like to have the result status, like `@failed` be stored on another object, so simplifying code like this makes it less cluttered and easier to move.

The only behavioural difference from this change should be that `failed?` will always return a boolean. Otherwise it should work the same. Is this something for JRuby?