fix if/else recursion
disable if/else rec, seems to cause non-monotonic behavior
remove many explicit zero cases

is this the right way? do we need to worry about
accessings things at indexed < zero, for which we
will potentially compute different values?