rep1sep(first, p, q) starts by using first', followed by repeatedly uses of p' interleaved with q'
to parse the input, until p' fails. first' must succeed (the result is a List' of the
consecutive results of first' and p')

p

a Parser' that is to be applied successively to the input

q

a Parser' that parses the elements that separate the elements parsed by p'
(interleaved with q')

returns

A parser that returns a list of results produced by repeatedly applying p' to the input
(and that only succeeds if p' matches at least once).
The results of p' are collected in a list. The results of q' are discarded.