Add traverse and sequence
Just want to make a note so I don't forget...
let traverse: ('a => Generator.t('b), list('a)) => Generator.t(list('b));
let sequence: list(Generator.t('a)) => Generator.t(list('a));
Naming is a bit of an issue, since this is primarily a list traversal, so Generator.traverse is pretty misleading. Generator.List.traverse feels backward for the same reason (especially when you consider the existence of List.Option.traverse in the ecosystem). Generator.ListOf makes the backward-ness more clear, but seems cumbersome. Maybe just Generator.listTraverse?
Just to add a data point, for things that are specialized to list/etc., I've been naming things with whateverAsList and whateverAsArray, so these could be traverseAsList and sequenceAsList - that way, you can find them via auto-suggest, but it's clear they are specialized.
Good call on the auto-suggest. I'll follow the same pattern.