I don't think this is a good idea. If you have a `ToBool` instance it should really do the right thing in all circumstances.
And this doesn't: if the `Int` in question is the exit status of a process, then 0 should be truthy and everything else falsy.
Better to make the test explicit. If the test is at all complex you wrap it up in its own function anyway, so it's not like it makes the if expression harder to read.
Consider also the instance for `Maybe`: which of these is right?
instance ToBool (Maybe a) where
toBool = isJust
instance ToBool a => ToBool (Maybe a) where
toBool = maybe False toBool