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, 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, 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, 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, IEnumerable <B> > traverse <Env, A, B>(IEnumerable <Reader <Env, A> > ma, Func <A, B> f) =>
 SeqReaderExtensions.TraverseFast(ma, f).Map(Enumerable.AsEnumerable);