where first-class patterns are increasingly becoming available in some languages which offer pattern matching (in particular, Haskell will have them soon).
I did a little googling, but am finding it difficult to find good clear information - do you have any articles where I can read about first-class patterns?
How do view patterns make patterns "first-class"? To me that means able to manipulate them as values, I don't see how view patterns allow that, they're just syntactic sugar for case expressions.