Denote the type variable for elements of sequences by 'a'.
Now 'run' returns a list of Matches with positions.
Return Matches in ascending order of their positions.
Arbitrary output values can be assigned to patterns.
Export the 'Match' data type.
Add another constructor function 'constructWithValues'.