Packing GADT constructors in iterable data structure

Clumsy and unpleasant indeed. Thanks for the great explanation! I solved my problem by re-designing public API.