Breaking lists into subgroups in F#
The fact that a function named breakBy also reverses the order of the data violates the Principle of Least Surprise.  In my opinion, it's a bug.

breakBy (Regex "^Name=").IsMatch can be thought of as an transformation to be applied to a list.  Therefore, to facilitate currying, the order of the parameters to breakBy should be reversed, so that the predicate comes before the data.