tail-rec for `if` and `and`
tail-rec support for `or`
remove redundant code
...