Ordering of conditions in multi-way conditional constructs Most programming languages provide multi-way conditional constructs (like cond in Lisp, guards in Haskell, etc) that allow one to define program behavior according to different conditions.  But most of them also implies a default top-down ordering: the next condition is checked only when all preceding conditions are unsatisfied.  I wonder if there is any work on conditional constructs that does not follow this convention but rather automatically sort the conditions according to some order.  I can foresee how hard it is to get conditions independent.  Maybe it is not feasible anyway?
On what basis you want to sort out conditions conditions are not specific. If they are specific then you may sort out the conditions to not follow top down approach.

And conditions are the only thing that decide which condition next to be tested.
That is they handle the flow of your code and one condition is dependent on other.