reverse | operator; add back if-then-else and fix t23