I guess I am all right with changing the argument order, because there are some other codes "using inferPartitioning" and it's good to be consistent. This is only a small change also.

A private 3-valued enum type may have slightly performance disadvantage as the worst case to get a type may be three, currently it is two.