Run the iterable of State's in sequence, only returning the results.
IList<dynamic> evaluateSeq(Iterable<State<S, dynamic>> arr) => arr.map(run).map((t) => t.first).toIList();