public static Reader <Env, Set <B> > traverse <Env, A, B>(Set <Reader <Env, A> > ma, Func <A, B> f) =>
 SeqReaderExtensions.TraverseFast(ma, f).Map(toSet);
 public static Reader <Env, Arr <B> > traverse <Env, A, B>(Arr <Reader <Env, A> > ma, Func <A, B> f) =>
 SeqReaderExtensions.TraverseFast(ma, f).Map(toArray);
 public static Reader <Env, B[]> traverse <Env, A, B>(Reader <Env, A>[] ma, Func <A, B> f) =>
 SeqReaderExtensions.TraverseFast(ma, f).Map(x => x.ToArray());
 public static Reader <Env, IEnumerable <A> > sequence <Env, A>(IEnumerable <Reader <Env, A> > ma) =>
 SeqReaderExtensions.SequenceFast(ma).Map(Enumerable.AsEnumerable);
 public static Reader <Env, Seq <B> > traverse <Env, A, B>(Seq <Reader <Env, A> > ma, Func <A, B> f) =>
 SeqReaderExtensions.TraverseFast(ma, f).Map(Prelude.Seq);
 public static Reader <Env, HashSet <A> > sequence <Env, A>(HashSet <Reader <Env, A> > ma) =>
 SeqReaderExtensions.SequenceFast(ma).Map(toHashSet);
 public static Reader <Env, Stck <A> > sequence <Env, A>(Stck <Reader <Env, A> > ma) =>
 SeqReaderExtensions.SequenceFast(ma).Map(toStack);
 public static Reader <Env, A[]> sequence <Env, A>(Reader <Env, A>[] ma) =>
 SeqReaderExtensions.SequenceFast(ma).Map(x => x.ToArray());
 public static Reader <Env, Arr <A> > sequence <Env, A>(Arr <Reader <Env, A> > ma) =>
 SeqReaderExtensions.SequenceFast(ma).Map(toArray);
 public static Reader <Env, Lst <A> > sequence <Env, A>(Lst <Reader <Env, A> > ma) =>
 SeqReaderExtensions.SequenceFast(ma).Map(toList);
 public static Reader <Env, Seq <A> > sequence <Env, A>(Seq <Reader <Env, A> > ma) =>
 SeqReaderExtensions.SequenceFast(ma).Map(Prelude.Seq);
 public static Reader <Env, IEnumerable <B> > traverse <Env, A, B>(IEnumerable <Reader <Env, A> > ma, Func <A, B> f) =>
 SeqReaderExtensions.TraverseFast(ma, f).Map(Enumerable.AsEnumerable);