That's sensible ways of doing things obviously. The can? approach is very similar to the Canada lib IIRC. I'll probably try some of those.
But the best non-business code I like is the one I don't have to code, commit and maintain.
You don't need voters for the example I wrote earlier though, in fact I don't remember the last time I had to write one.
But I think it's more a functional vs OO discussion and we know how those goes ;)