transform (.foo (if 1 2 3)) into (if 1 (.foo 2) (.foo 3)), reduces need for reflection at runtime