The 'splittee' should be the last argument. The last argument is usually what you want to a) elide as part of function composition, or b) loop over (the tightest).
E.g. Splitting a file into lines:
lines content = splitBy "\n" content
lines = splitBy "\n"
lines = (\c -> splitBy c "\n")
entries content = concatMap splitBy "\t" (splitBy "\n" content)
entries = concatMap splitBy "\t" . splitBy "\n"
entries content = concatMap splitBy (splitBy content "\n") "\t"
The 'splittee' should be the last argument. The last argument is usually what you want to a) elide as part of function composition, or b) loop over (the tightest).
E.g. Splitting a file into lines:
can be: If splitBy used the other order, it would be: E.g. Splitting a file by lines and tabs: can be: If splitBy used the other order, it would be: