I have a list and I want to find (in this particular case the first) appearance of a any of some subsequences, of possible different lengths. None of the subsequences is a subsequence of each other.
In my particular case I could do this translating the list to a string and using `StringPosition`. But I could do it because all elements on my list were one-character-long.
Before realizing this I had implemented a not-nearly-one-liner that did the trick without recurring to Strings. It didn't do any useless comparison but it did lots of useless coping of the list as a whole, and it turned out to be 50 times slower than the `StringPosition` version. It can be improved, avoiding that issue, making it even less one-liner.
The task just seems too easy to describe so as to be so not-easy to program well...
Is there an efficient way to do it for the general case?
"Find the first appearance of one of many subsequences (possible different lengths, perhaps could be patterns, or not) in a list"

(Wow, I think I just thought of a good way, I'll give it a shot... If it works I'll auto-answer. But I'd still like your input, I'm afraid I'm missing some options)