Decompiled source of FSharpControlAsyncSeq v3.2.1

core\FSharp.Control.AsyncSeq.dll

Decompiled 6 months ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;
using <StartupCode$FSharp-Control-AsyncSeq>;
using FSharp.Control;
using Microsoft.FSharp.Collections;
using Microsoft.FSharp.Control;
using Microsoft.FSharp.Core;
using Microsoft.FSharp.Core.CompilerServices;

[assembly: FSharpInterfaceDataVersion(2, 0, 0)]
[assembly: AssemblyTitle("FSharp.Control.AsyncSeq")]
[assembly: AssemblyProduct("src/FSharp.Control.AsyncSeq")]
[assembly: AssemblyDescription("Asynchronous sequences for F#")]
[assembly: AssemblyVersion("2.0.21")]
[assembly: AssemblyFileVersion("2.0.21")]
[assembly: InternalsVisibleTo("FSharp.Control.AsyncSeq.Tests")]
[assembly: TargetFramework(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyVersion("2.0.21.0")]
namespace FSharp.Control
{
	[Serializable]
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	public interface IAsyncEnumerator<T> : IDisposable
	{
		virtual FSharpAsync<FSharpOption<T>> MoveNext();
	}
	[Serializable]
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	public interface IAsyncEnumerable<T>
	{
		virtual IAsyncEnumerator<T> GetEnumerator();
	}
	[Serializable]
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	public sealed class AsyncSeqSrc<T> : IEquatable<AsyncSeqSrc<T>>, IStructuralEquatable
	{
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		internal FSharpRef<AsyncSeqSrcNode<T>> tail@;

		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal FSharpRef<AsyncSeqSrcNode<T>> tail => tail@;

		internal AsyncSeqSrc(FSharpRef<AsyncSeqSrcNode<T>> tail)
		{
			tail@ = tail;
		}

		[CompilerGenerated]
		public override string ToString()
		{
			return ((FSharpFunc<AsyncSeqSrc<AsyncSeqSrc<T>>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<AsyncSeqSrc<T>, string>>((PrintfFormat<FSharpFunc<AsyncSeqSrc<T>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<AsyncSeqSrc<FSharpFunc<AsyncSeqSrc<T>, string>>, string>, Unit, string, string, AsyncSeqSrc<FSharpFunc<AsyncSeqSrc<T>, string>>>("%+A"))).Invoke((AsyncSeqSrc<AsyncSeqSrc<T>>)(object)this);
		}

		[CompilerGenerated]
		public sealed int GetHashCode(IEqualityComparer comp)
		{
			if (this != null)
			{
				int num = 0;
				return -1640531527 + (((FSharpRef<AsyncSeqSrcNode<AsyncSeqSrcNode<T>>>)(object)tail@).GetHashCode(comp) + ((num << 6) + (num >> 2)));
			}
			return 0;
		}

		[CompilerGenerated]
		public sealed override int GetHashCode()
		{
			return GetHashCode(LanguagePrimitives.GenericEqualityComparer);
		}

		[CompilerGenerated]
		public sealed bool Equals(object obj, IEqualityComparer comp)
		{
			if (this != null)
			{
				if (obj is AsyncSeqSrc<T> asyncSeqSrc)
				{
					FSharpRef<AsyncSeqSrcNode<T>> val = tail@;
					FSharpRef<AsyncSeqSrcNode<T>> val2 = asyncSeqSrc.tail@;
					return ((FSharpRef<AsyncSeqSrcNode<AsyncSeqSrcNode<T>>>)(object)val).Equals((object)val2, comp);
				}
				return false;
			}
			return obj == null;
		}

		[CompilerGenerated]
		public sealed bool Equals(AsyncSeqSrc<T> obj)
		{
			if (this != null)
			{
				if (obj != null)
				{
					return HashCompare.GenericEqualityERIntrinsic<FSharpRef<AsyncSeqSrcNode<T>>>(tail@, obj.tail@);
				}
				return false;
			}
			return obj == null;
		}

		[CompilerGenerated]
		public sealed override bool Equals(object obj)
		{
			if (obj is AsyncSeqSrc<T> obj2)
			{
				return Equals(obj2);
			}
			return false;
		}
	}
	[Serializable]
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	internal class AsyncSeqSrcNode<a>
	{
		internal TaskCompletionSource<FSharpOption<Tuple<a, AsyncSeqSrcNode<a>>>> tcs@;

		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal TaskCompletionSource<FSharpOption<Tuple<a, AsyncSeqSrcNode<a>>>> tcs => tcs@;

		public AsyncSeqSrcNode(TaskCompletionSource<FSharpOption<Tuple<a, AsyncSeqSrcNode<a>>>> tcs)
		{
			tcs@ = tcs;
		}
	}
	[Serializable]
	[AbstractClass]
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	internal abstract class AsyncSeqOp<T>
	{
		public abstract virtual IAsyncEnumerable<U> ChooseAsync<U>(FSharpFunc<T, FSharpAsync<FSharpOption<U>>> P_0);

		[CompilationArgumentCounts(new int[] { 1, 1 })]
		public abstract virtual FSharpAsync<S> FoldAsync<S>(FSharpFunc<S, FSharpFunc<T, FSharpAsync<S>>> P_0, S P_1);

		public AsyncSeqOp()
		{
		}

		public virtual IAsyncEnumerable<a> MapAsync<a>(FSharpFunc<T, FSharpAsync<a>> f)
		{
			FSharpFunc<a, FSharpOption<a>> arg = new $AsyncSeq.MapAsync@279<a>();
			FSharpFunc<FSharpAsync<a>, FSharpAsync<FSharpOption<a>>> g = new $AsyncSeq.MapAsync@279-1<a>(arg);
			return ChooseAsync(new $AsyncSeq.MapAsync@279-2<T, a>(f, g));
		}

		public virtual FSharpAsync<Unit> IterAsync(FSharpFunc<T, FSharpAsync<Unit>> f)
		{
			return FoldAsync<Unit>((FSharpFunc<Unit, FSharpFunc<T, FSharpAsync<Unit>>>)(object)new $AsyncSeq.IterAsync@281<T>(f), null);
		}
	}
}
namespace <StartupCode$FSharp-Control-AsyncSeq>.$.NETFramework,Version=v4.5
{
	internal static class AssemblyAttributes
	{
	}
}
namespace FSharp.Control
{
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	public static class Seq
	{
		public static IEnumerable<T> ofAsyncSeq<T>(IAsyncEnumerable<T> source)
		{
			return AsyncSeq.toBlockingSeq(source);
		}
	}
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	public static class AsyncSeqSrc
	{
		public static AsyncSeqSrc<T> create<T>()
		{
			return new AsyncSeqSrc<T>(new FSharpRef<AsyncSeqSrcNode<T>>(new AsyncSeqSrcNode<T>(new TaskCompletionSource<FSharpOption<Tuple<T, AsyncSeqSrcNode<T>>>>())));
		}

		[CompilationArgumentCounts(new int[] { 1, 1 })]
		public static void put<T>(T item, AsyncSeqSrc<T> src)
		{
			AsyncSeq.AsyncSeqSrcImpl.put(item, src);
		}

		public static void close<T>(AsyncSeqSrc<T> src)
		{
			src.tail@.contents.tcs@.SetResult(null);
		}

		public static IAsyncEnumerable<T> toAsyncSeq<T>(AsyncSeqSrc<T> src)
		{
			return AsyncSeq.AsyncSeqSrcImpl.toAsyncSeqImpl(src.tail@.contents);
		}

		[CompilationArgumentCounts(new int[] { 1, 1 })]
		public static void error<T>(Exception exn, AsyncSeqSrc<T> src)
		{
			src.tail@.contents.tcs@.SetException(exn);
		}
	}
	[AutoOpen]
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	public static class AsyncSeqExtensions
	{
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		public static AsyncSeq.AsyncSeqBuilder asyncSeq => $AsyncSeq.asyncSeq@1704-1;

		[CompilationArgumentCounts(new int[] { 1, 2 })]
		public static FSharpAsync<Unit> AsyncBuilder.For<T>(FSharpAsyncBuilder x, IAsyncEnumerable<T> seq, FSharpFunc<T, FSharpAsync<Unit>> action)
		{
			return AsyncSeq.iterAsync(action, seq);
		}
	}
	[RequireQualifiedAccess]
	[CompilationMapping(/*Could not decode attribute arguments.*/)]
	public static class AsyncSeq
	{
		[Serializable]
		internal sealed class empty@357-3<T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>
		{
			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal empty@357-3()
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(Unit unitVar)
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<T>>((FSharpOption<T>)null);
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class empty@356-2<T> : IAsyncEnumerator<T>
		{
			private FSharpAsync<FSharpOption<T>> FSharp-Control-IAsyncEnumerator`1-MoveNext()
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<FSharpOption<T>>((FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>)new empty@357-3<T>());
			}

			FSharpAsync<FSharpOption<T>> IAsyncEnumerator<T>.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerator`1-MoveNext
				return this.FSharp-Control-IAsyncEnumerator`1-MoveNext();
			}

			private void System-IDisposable-Dispose()
			{
			}

			void IDisposable.Dispose()
			{
				//ILSpy generated this explicit interface implementation from .override directive in System-IDisposable-Dispose
				this.System-IDisposable-Dispose();
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class empty@354-1<T> : IAsyncEnumerable<T>
		{
			private IAsyncEnumerator<T> FSharp-Control-IAsyncEnumerable`1-GetEnumerator()
			{
				return new empty@356-2<T>();
			}

			IAsyncEnumerator<T> IAsyncEnumerable<T>.GetEnumerator()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerable`1-GetEnumerator
				return this.FSharp-Control-IAsyncEnumerable`1-GetEnumerator();
			}
		}

		[Serializable]
		internal sealed class singleton@365-2<T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>
		{
			public T v;

			public FSharpRef<int> state;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal singleton@365-2(T v, FSharpRef<int> state)
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
				this.v = v;
				this.state = state;
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(Unit unitVar)
			{
				bool flag = state.contents == 0;
				state.contents += 1;
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<T>>((!flag) ? null : FSharpOption<T>.Some(v));
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class singleton@364-1<T> : IAsyncEnumerator<T>
		{
			public T v;

			public FSharpRef<int> state;

			public singleton@364-1(T v, FSharpRef<int> state)
			{
				this.v = v;
				this.state = state;
				base..ctor();
			}

			private FSharpAsync<FSharpOption<T>> FSharp-Control-IAsyncEnumerator`1-MoveNext()
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<FSharpOption<T>>((FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>)new singleton@365-2<T>(v, state));
			}

			FSharpAsync<FSharpOption<T>> IAsyncEnumerator<T>.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerator`1-MoveNext
				return this.FSharp-Control-IAsyncEnumerator`1-MoveNext();
			}

			private void System-IDisposable-Dispose()
			{
			}

			void IDisposable.Dispose()
			{
				//ILSpy generated this explicit interface implementation from .override directive in System-IDisposable-Dispose
				this.System-IDisposable-Dispose();
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class singleton@361<T> : IAsyncEnumerable<T>
		{
			public T v;

			public singleton@361(T v)
			{
				this.v = v;
				base..ctor();
			}

			private IAsyncEnumerator<T> FSharp-Control-IAsyncEnumerable`1-GetEnumerator()
			{
				FSharpRef<int> state = new FSharpRef<int>(0);
				return new singleton@364-1<T>(v, state);
			}

			IAsyncEnumerator<T> IAsyncEnumerable<T>.GetEnumerator()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerable`1-GetEnumerator
				return this.FSharp-Control-IAsyncEnumerable`1-GetEnumerator();
			}
		}

		[Serializable]
		internal sealed class bindAsync@382-3<T, U> : FSharpFunc<T, FSharpAsync<AsyncGenerator.Step<U>>>
		{
			public FSharpFunc<T, IAsyncEnumerable<U>> f;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal bindAsync@382-3(FSharpFunc<T, IAsyncEnumerable<U>> f)
			{
				((FSharpFunc<T, FSharpAsync<AsyncGenerator.Step<FSharpAsync<AsyncGenerator.Step<U>>>>>)(object)this)..ctor();
				this.f = f;
			}

			public override FSharpAsync<AsyncGenerator.Step<U>> Invoke(T _arg1)
			{
				AsyncGenerator.AsyncGenerator<U> item = AsyncGenerator.generatorFromEnumerator(((FSharpFunc<T, IAsyncEnumerable<IAsyncEnumerable<U>>>)(object)f).Invoke(_arg1).GetEnumerator());
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<AsyncGenerator.Step<U>>(AsyncGenerator.Step<U>.NewGoto(item));
			}
		}

		[Serializable]
		internal sealed class bindAsync@381-2<U, T> : FSharpFunc<Unit, FSharpAsync<AsyncGenerator.Step<U>>>
		{
			public FSharpFunc<T, IAsyncEnumerable<U>> f;

			public FSharpAsync<T> inp;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal bindAsync@381-2(FSharpFunc<T, IAsyncEnumerable<U>> f, FSharpAsync<T> inp)
			{
				((FSharpFunc<Unit, FSharpAsync<AsyncGenerator.Step<Unit>>>)(object)this)..ctor();
				this.f = f;
				this.inp = inp;
			}

			public override FSharpAsync<AsyncGenerator.Step<U>> Invoke(Unit unitVar)
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Bind<T, AsyncGenerator.Step<U>>(inp, (FSharpFunc<T, FSharpAsync<AsyncGenerator.Step<U>>>)new bindAsync@382-3<T, U>(f));
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class bindAsync@379-1<U, T> : AsyncGenerator.AsyncGenerator<U>
		{
			public FSharpFunc<T, IAsyncEnumerable<U>> f;

			public FSharpAsync<T> inp;

			public bindAsync@379-1(FSharpFunc<T, IAsyncEnumerable<U>> f, FSharpAsync<T> inp)
			{
				this.f = f;
				this.inp = inp;
				base..ctor();
			}

			private FSharpAsync<AsyncGenerator.Step<U>> FSharp-Control-AsyncGenerator-AsyncGenerator`1-Apply()
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<AsyncGenerator.Step<U>>((FSharpFunc<Unit, FSharpAsync<AsyncGenerator.Step<U>>>)new bindAsync@381-2<U, T>(f, inp));
			}

			FSharpAsync<AsyncGenerator.Step<U>> AsyncGenerator.AsyncGenerator<U>.Apply()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-AsyncGenerator-AsyncGenerator`1-Apply
				return this.FSharp-Control-AsyncGenerator-AsyncGenerator`1-Apply();
			}

			private FSharpOption<FSharpFunc<Unit, Unit>> FSharp-Control-AsyncGenerator-AsyncGenerator`1-get_Disposer()
			{
				return null;
			}

			FSharpOption<FSharpFunc<Unit, Unit>> AsyncGenerator.AsyncGenerator<U>.get_Disposer()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-AsyncGenerator-AsyncGenerator`1-get_Disposer
				return this.FSharp-Control-AsyncGenerator-AsyncGenerator`1-get_Disposer();
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class bindAsync@377<U, T> : IAsyncEnumerable<U>
		{
			public FSharpFunc<T, IAsyncEnumerable<U>> f;

			public FSharpAsync<T> inp;

			public bindAsync@377(FSharpFunc<T, IAsyncEnumerable<U>> f, FSharpAsync<T> inp)
			{
				this.f = f;
				this.inp = inp;
				base..ctor();
			}

			private IAsyncEnumerator<U> FSharp-Control-IAsyncEnumerable`1-GetEnumerator()
			{
				return AsyncGenerator.enumeratorFromGenerator(new bindAsync@379-1<U, T>(f, inp));
			}

			IAsyncEnumerator<U> IAsyncEnumerable<U>.GetEnumerator()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerable`1-GetEnumerator
				return this.FSharp-Control-IAsyncEnumerable`1-GetEnumerator();
			}
		}

		[Serializable]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		public class AsyncSeqBuilder
		{
			public IAsyncEnumerable<T> Yield<T>(T value)
			{
				return singleton(value);
			}

			public IAsyncEnumerable<T> Return<unit, T>(unit _arg1)
			{
				return empty<T>();
			}

			public IAsyncEnumerable<T> YieldFrom<T>(IAsyncEnumerable<T> source)
			{
				return source;
			}

			public IAsyncEnumerable<T> Zero<T>()
			{
				return empty<T>();
			}

			public IAsyncEnumerable<U> Bind<T, U>(FSharpAsync<T> source, FSharpFunc<T, IAsyncEnumerable<U>> body)
			{
				return bindAsync<T, U>(body, source);
			}

			public IAsyncEnumerable<T> Combine<T>(IAsyncEnumerable<T> seq1, IAsyncEnumerable<T> seq2)
			{
				return AsyncGenerator.append(seq1, seq2);
			}

			public IAsyncEnumerable<T> While<T>(FSharpFunc<Unit, bool> guard, IAsyncEnumerable<T> body)
			{
				Lazy<IAsyncEnumerable<T>> fix = default(Lazy<IAsyncEnumerable<T>>);
				FSharpFunc<Unit, IAsyncEnumerable<T>> val = new While@412<T>(guard, body, fix);
				fix = LazyExtensions.Create<IAsyncEnumerable<T>>(val);
				((While@412<T>)val).fix = fix;
				return fix.Value;
			}

			public IAsyncEnumerable<T> Delay<T>(FSharpFunc<Unit, IAsyncEnumerable<T>> f)
			{
				return AsyncGenerator.delay<T>(f);
			}

			public IAsyncEnumerable<T> TryFinally<T>(IAsyncEnumerable<T> body, FSharpFunc<Unit, Unit> compensation)
			{
				return tryFinally(body, compensation);
			}

			public IAsyncEnumerable<T> TryWith<T>(IAsyncEnumerable<T> body, FSharpFunc<Exception, IAsyncEnumerable<T>> handler)
			{
				return tryWith(body, handler);
			}

			public IAsyncEnumerable<U> Using<T, U>(T resource, FSharpFunc<T, IAsyncEnumerable<U>> binder) where T : IDisposable
			{
				return tryFinally(binder.Invoke(resource), new Using@703<T>(resource));
			}

			public IAsyncEnumerable<TResult> For<T, TResult>(IEnumerable<T> source, FSharpFunc<T, IAsyncEnumerable<TResult>> action)
			{
				return collectSeq<T, TResult>(action, source);
			}

			public IAsyncEnumerable<TResult> For<T, TResult>(IAsyncEnumerable<T> source, FSharpFunc<T, IAsyncEnumerable<TResult>> action)
			{
				return collect<T, TResult>(action, source);
			}
		}

		[Serializable]
		internal sealed class While@412-1<T> : FSharpFunc<Unit, IAsyncEnumerable<T>>
		{
			public FSharpFunc<Unit, bool> guard;

			public IAsyncEnumerable<T> body;

			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			[CompilerGenerated]
			[DebuggerNonUserCode]
			public Lazy<IAsyncEnumerable<T>> fix;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal While@412-1(FSharpFunc<Unit, bool> guard, IAsyncEnumerable<T> body, Lazy<IAsyncEnumerable<T>> fix)
			{
				((FSharpFunc<Unit, IAsyncEnumerable<Unit>>)(object)this)..ctor();
				this.guard = guard;
				this.body = body;
				this.fix = fix;
			}

			public override IAsyncEnumerable<T> Invoke(Unit unitVar0)
			{
				if (guard.Invoke((Unit)null))
				{
					return AsyncGenerator.append(body, fix.Value);
				}
				return empty<T>();
			}
		}

		[Serializable]
		internal sealed class While@412<T> : FSharpFunc<Unit, IAsyncEnumerable<T>>
		{
			public FSharpFunc<Unit, bool> guard;

			public IAsyncEnumerable<T> body;

			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			[CompilerGenerated]
			[DebuggerNonUserCode]
			public Lazy<IAsyncEnumerable<T>> fix;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal While@412(FSharpFunc<Unit, bool> guard, IAsyncEnumerable<T> body, Lazy<IAsyncEnumerable<T>> fix)
			{
				((FSharpFunc<Unit, IAsyncEnumerable<Unit>>)(object)this)..ctor();
				this.guard = guard;
				this.body = body;
				this.fix = fix;
			}

			public override IAsyncEnumerable<T> Invoke(Unit unitVar)
			{
				return AsyncGenerator.delay(new While@412-1<T>(guard, body, fix));
			}
		}

		[Serializable]
		internal sealed class emitEnumerator@424-2<T> : FSharpFunc<Unit, bool>
		{
			public FSharpRef<FSharpOption<T>> b;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal emitEnumerator@424-2(FSharpRef<FSharpOption<T>> b)
			{
				this.b = b;
			}

			public override bool Invoke(Unit unitVar)
			{
				return ((FSharpRef<FSharpOption<FSharpOption<T>>>)(object)b).contents != null;
			}
		}

		[Serializable]
		internal sealed class emitEnumerator@427-5<T> : FSharpFunc<FSharpOption<T>, IAsyncEnumerable<T>>
		{
			public FSharpRef<FSharpOption<T>> b;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal emitEnumerator@427-5(FSharpRef<FSharpOption<T>> b)
			{
				((FSharpFunc<FSharpOption<FSharpOption<T>>, IAsyncEnumerable<FSharpOption<T>>>)(object)this)..ctor();
				this.b = b;
			}

			public override IAsyncEnumerable<T> Invoke(FSharpOption<T> _arg2)
			{
				((FSharpRef<FSharpOption<FSharpOption<T>>>)(object)b).contents = (FSharpOption<FSharpOption<T>>)(object)_arg2;
				return empty<T>();
			}
		}

		[Serializable]
		internal sealed class emitEnumerator@426-4<T> : FSharpFunc<Unit, IAsyncEnumerable<T>>
		{
			public IAsyncEnumerator<T> ie;

			public FSharpRef<FSharpOption<T>> b;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal emitEnumerator@426-4(IAsyncEnumerator<T> ie, FSharpRef<FSharpOption<T>> b)
			{
				((FSharpFunc<Unit, IAsyncEnumerable<Unit>>)(object)this)..ctor();
				this.ie = ie;
				this.b = b;
			}

			public override IAsyncEnumerable<T> Invoke(Unit unitVar)
			{
				return bindAsync(new emitEnumerator@427-5<T>(b), ie.MoveNext());
			}
		}

		[Serializable]
		internal sealed class emitEnumerator@425-3<T> : FSharpFunc<Unit, IAsyncEnumerable<T>>
		{
			public IAsyncEnumerator<T> ie;

			public FSharpRef<FSharpOption<T>> b;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal emitEnumerator@425-3(IAsyncEnumerator<T> ie, FSharpRef<FSharpOption<T>> b)
			{
				((FSharpFunc<Unit, IAsyncEnumerable<Unit>>)(object)this)..ctor();
				this.ie = ie;
				this.b = b;
			}

			public override IAsyncEnumerable<T> Invoke(Unit unitVar)
			{
				return AsyncGenerator.append(singleton(((FSharpRef<FSharpOption<FSharpOption<T>>>)(object)b).contents.Value), AsyncGenerator.delay(new emitEnumerator@426-4<T>(ie, b)));
			}
		}

		[Serializable]
		internal sealed class emitEnumerator@423-1<T> : FSharpFunc<FSharpOption<T>, IAsyncEnumerable<T>>
		{
			public IAsyncEnumerator<T> ie;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal emitEnumerator@423-1(IAsyncEnumerator<T> ie)
			{
				((FSharpFunc<FSharpOption<FSharpOption<T>>, IAsyncEnumerable<FSharpOption<T>>>)(object)this)..ctor();
				this.ie = ie;
			}

			public override IAsyncEnumerable<T> Invoke(FSharpOption<T> _arg1)
			{
				FSharpRef<FSharpOption<T>> b = (FSharpRef<FSharpOption<T>>)(object)new FSharpRef<FSharpOption<FSharpOption<T>>>((FSharpOption<FSharpOption<T>>)(object)_arg1);
				return asyncSeq.While(new emitEnumerator@424-2<T>(b), AsyncGenerator.delay(new emitEnumerator@425-3<T>(ie, b)));
			}
		}

		[Serializable]
		internal sealed class emitEnumerator@422<T> : FSharpFunc<Unit, IAsyncEnumerable<T>>
		{
			public IAsyncEnumerator<T> ie;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal emitEnumerator@422(IAsyncEnumerator<T> ie)
			{
				((FSharpFunc<Unit, IAsyncEnumerable<Unit>>)(object)this)..ctor();
				this.ie = ie;
			}

			public override IAsyncEnumerable<T> Invoke(Unit unitVar)
			{
				return bindAsync(new emitEnumerator@423-1<T>(ie), ie.MoveNext());
			}
		}

		[Serializable]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[RequireQualifiedAccess]
		[DebuggerDisplay("{__DebugDisplay(),nq}")]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal class TryWithState<T> : IEquatable<TryWithState<T>>, IStructuralEquatable
		{
			internal static class Tags
			{
				public const int NotStarted = 0;

				public const int HaveBodyEnumerator = 1;

				public const int HaveHandlerEnumerator = 2;

				public const int Finished = 3;
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(TryWithState<>.NotStarted@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class NotStarted : TryWithState<T>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerable<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal NotStarted(IAsyncEnumerable<T> item)
					: base(0)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(TryWithState<>.HaveBodyEnumerator@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class HaveBodyEnumerator : TryWithState<T>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerator<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal HaveBodyEnumerator(IAsyncEnumerator<T> item)
					: base(1)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(TryWithState<>.HaveHandlerEnumerator@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class HaveHandlerEnumerator : TryWithState<T>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerator<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal HaveHandlerEnumerator(IAsyncEnumerator<T> item)
					: base(2)
				{
					this.item = item;
				}
			}

			[SpecialName]
			internal class NotStarted@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public NotStarted@DebugTypeProxy(NotStarted obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class HaveBodyEnumerator@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public HaveBodyEnumerator@DebugTypeProxy(HaveBodyEnumerator obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class HaveHandlerEnumerator@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public HaveHandlerEnumerator@DebugTypeProxy(HaveHandlerEnumerator obj)
				{
					_obj = obj;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal int Tag
			{
				[DebuggerNonUserCode]
				get;
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsNotStarted
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 0;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsHaveBodyEnumerator
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 1;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsHaveHandlerEnumerator
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 2;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal static TryWithState<T> Finished
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				get
				{
					return _unique_Finished;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsFinished
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 3;
				}
			}

			static TryWithState()
			{
				_unique_Finished = new TryWithState<T>(3);
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal TryWithState(int _tag)
			{
				this._tag = _tag;
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static TryWithState<T> NewNotStarted(IAsyncEnumerable<T> item)
			{
				return new NotStarted(item);
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static TryWithState<T> NewHaveBodyEnumerator(IAsyncEnumerator<T> item)
			{
				return new HaveBodyEnumerator(item);
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static TryWithState<T> NewHaveHandlerEnumerator(IAsyncEnumerator<T> item)
			{
				return new HaveHandlerEnumerator(item);
			}

			[SpecialName]
			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal object __DebugDisplay()
			{
				return ((FSharpFunc<TryWithState<TryWithState<T>>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<TryWithState<T>, string>>((PrintfFormat<FSharpFunc<TryWithState<T>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<TryWithState<FSharpFunc<TryWithState<T>, string>>, string>, Unit, string, string, string>("%+0.8A"))).Invoke((TryWithState<TryWithState<T>>)(object)this);
			}

			[CompilerGenerated]
			public override string ToString()
			{
				return ((FSharpFunc<TryWithState<TryWithState<T>>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<TryWithState<T>, string>>((PrintfFormat<FSharpFunc<TryWithState<T>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<TryWithState<FSharpFunc<TryWithState<T>, string>>, string>, Unit, string, string, TryWithState<FSharpFunc<TryWithState<T>, string>>>("%+A"))).Invoke((TryWithState<TryWithState<T>>)(object)this);
			}

			[CompilerGenerated]
			public virtual sealed int GetHashCode(IEqualityComparer comp)
			{
				if (this != null)
				{
					int num = 0;
					switch (Tag)
					{
					default:
						return _tag;
					case 0:
					{
						NotStarted notStarted = (NotStarted)this;
						num = 0;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerable<T>>(comp, notStarted.item) + ((num << 6) + (num >> 2)));
					}
					case 1:
					{
						HaveBodyEnumerator haveBodyEnumerator = (HaveBodyEnumerator)this;
						num = 1;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveBodyEnumerator.item) + ((num << 6) + (num >> 2)));
					}
					case 2:
					{
						HaveHandlerEnumerator haveHandlerEnumerator = (HaveHandlerEnumerator)this;
						num = 2;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveHandlerEnumerator.item) + ((num << 6) + (num >> 2)));
					}
					}
				}
				return 0;
			}

			[CompilerGenerated]
			public sealed override int GetHashCode()
			{
				return GetHashCode(LanguagePrimitives.GenericEqualityComparer);
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(object obj, IEqualityComparer comp)
			{
				if (this != null)
				{
					if (obj is TryWithState<T> tryWithState)
					{
						int tag = _tag;
						int tag2 = tryWithState._tag;
						if (tag == tag2)
						{
							switch (Tag)
							{
							default:
								return true;
							case 0:
							{
								NotStarted notStarted = (NotStarted)this;
								NotStarted notStarted2 = (NotStarted)tryWithState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerable<T>>(comp, notStarted.item, notStarted2.item);
							}
							case 1:
							{
								HaveBodyEnumerator haveBodyEnumerator = (HaveBodyEnumerator)this;
								HaveBodyEnumerator haveBodyEnumerator2 = (HaveBodyEnumerator)tryWithState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveBodyEnumerator.item, haveBodyEnumerator2.item);
							}
							case 2:
							{
								HaveHandlerEnumerator haveHandlerEnumerator = (HaveHandlerEnumerator)this;
								HaveHandlerEnumerator haveHandlerEnumerator2 = (HaveHandlerEnumerator)tryWithState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveHandlerEnumerator.item, haveHandlerEnumerator2.item);
							}
							}
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(TryWithState<T> obj)
			{
				if (this != null)
				{
					if (obj != null)
					{
						int tag = _tag;
						int tag2 = obj._tag;
						if (tag == tag2)
						{
							switch (Tag)
							{
							default:
								return true;
							case 0:
							{
								NotStarted notStarted = (NotStarted)this;
								NotStarted notStarted2 = (NotStarted)obj;
								return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerable<T>>(notStarted.item, notStarted2.item);
							}
							case 1:
							{
								HaveBodyEnumerator haveBodyEnumerator = (HaveBodyEnumerator)this;
								HaveBodyEnumerator haveBodyEnumerator2 = (HaveBodyEnumerator)obj;
								return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerator<T>>(haveBodyEnumerator.item, haveBodyEnumerator2.item);
							}
							case 2:
							{
								HaveHandlerEnumerator haveHandlerEnumerator = (HaveHandlerEnumerator)this;
								HaveHandlerEnumerator haveHandlerEnumerator2 = (HaveHandlerEnumerator)obj;
								return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerator<T>>(haveHandlerEnumerator.item, haveHandlerEnumerator2.item);
							}
							}
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public sealed override bool Equals(object obj)
			{
				if (obj is TryWithState<T> obj2)
				{
					return Equals(obj2);
				}
				return false;
			}
		}

		[Serializable]
		internal sealed class tryWith@448-3<T> : FSharpFunc<Unit, FSharpAsync<Unit>>
		{
			public IAsyncEnumerable<T> inp;

			public FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>> res;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@448-3(IAsyncEnumerable<T> inp, FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>> res)
			{
				this.inp = inp;
				this.res = res;
			}

			public override FSharpAsync<Unit> Invoke(Unit unitVar)
			{
				((FSharpRef<FSharpChoice<IAsyncEnumerator<FSharpChoice<IAsyncEnumerator<T>, Exception>>, Exception>>)(object)res).contents = (FSharpChoice<IAsyncEnumerator<FSharpChoice<IAsyncEnumerator<T>, Exception>>, Exception>)(object)FSharpChoice<IAsyncEnumerator<IAsyncEnumerator<T>>, Exception>.NewChoice1Of2((IAsyncEnumerator<IAsyncEnumerator<T>>)inp.GetEnumerator());
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Zero();
			}
		}

		[Serializable]
		internal sealed class tryWith@447-4<T> : FSharpFunc<Exception, FSharpAsync<Unit>>
		{
			public FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>> res;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@447-4(FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>> res)
			{
				this.res = res;
			}

			public override FSharpAsync<Unit> Invoke(Exception _arg1)
			{
				((FSharpRef<FSharpChoice<IAsyncEnumerator<FSharpChoice<IAsyncEnumerator<T>, Exception>>, Exception>>)(object)res).contents = (FSharpChoice<IAsyncEnumerator<FSharpChoice<IAsyncEnumerator<T>, Exception>>, Exception>)(object)FSharpChoice<IAsyncEnumerator<IAsyncEnumerator<T>>, Exception>.NewChoice2Of2(_arg1);
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Zero();
			}
		}

		[Serializable]
		internal sealed class tryWith@451-5<T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>
		{
			public FSharpFunc<Exception, IAsyncEnumerable<T>> handler;

			public FSharpRef<TryWithState<T>> state;

			public IAsyncEnumerator<T> x;

			public FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>> res;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@451-5(FSharpFunc<Exception, IAsyncEnumerable<T>> handler, FSharpRef<TryWithState<T>> state, IAsyncEnumerator<T> x, FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>> res)
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
				this.handler = handler;
				this.state = state;
				this.x = x;
				this.res = res;
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(Unit unitVar)
			{
				FSharpChoice<IAsyncEnumerator<T>, Exception> contents = ((FSharpRef<FSharpChoice<IAsyncEnumerator<FSharpChoice<IAsyncEnumerator<T>, Exception>>, Exception>>)(object)res).contents;
				IAsyncEnumerator<T> enumerator;
				if (contents is Choice2Of2<IAsyncEnumerator<T>, Exception>)
				{
					Choice2Of2<IAsyncEnumerator<T>, Exception> val = (Choice2Of2<IAsyncEnumerator<T>, Exception>)(object)contents;
					Exception item = ((Choice2Of2<IAsyncEnumerator<IAsyncEnumerator<T>>, Exception>)(object)val).Item;
					x.Dispose();
					enumerator = ((FSharpFunc<Exception, IAsyncEnumerable<Exception>>)(object)handler).Invoke(item).GetEnumerator();
					((FSharpRef<TryWithState<TryWithState<T>>>)(object)state).contents = (TryWithState<TryWithState<T>>)(object)TryWithState<T>.NewHaveHandlerEnumerator(enumerator);
					return x.MoveNext();
				}
				Choice1Of2<IAsyncEnumerator<T>, Exception> val2 = (Choice1Of2<IAsyncEnumerator<T>, Exception>)(object)contents;
				enumerator = ((Choice1Of2<IAsyncEnumerator<IAsyncEnumerator<T>>, Exception>)(object)val2).Item;
				((FSharpRef<TryWithState<TryWithState<T>>>)(object)state).contents = (TryWithState<TryWithState<T>>)(object)TryWithState<T>.NewHaveBodyEnumerator(enumerator);
				return x.MoveNext();
			}
		}

		[Serializable]
		internal sealed class tryWith@466-7<T> : FSharpFunc<FSharpOption<T>, FSharpAsync<Unit>>
		{
			public FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@466-7(FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res)
			{
				((FSharpFunc<FSharpOption<FSharpOption<T>>, FSharpAsync<Unit>>)(object)this)..ctor();
				this.res = res;
			}

			public override FSharpAsync<Unit> Invoke(FSharpOption<T> _arg2)
			{
				((FSharpRef<FSharpChoice<FSharpOption<FSharpChoice<FSharpOption<T>, Exception>>, Exception>>)(object)res).contents = (FSharpChoice<FSharpOption<FSharpChoice<FSharpOption<T>, Exception>>, Exception>)(object)FSharpChoice<FSharpOption<FSharpOption<T>>, Exception>.NewChoice1Of2((FSharpOption<FSharpOption<T>>)(object)_arg2);
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Zero();
			}
		}

		[Serializable]
		internal sealed class tryWith@465-6<T> : FSharpFunc<Unit, FSharpAsync<Unit>>
		{
			public IAsyncEnumerator<T> e;

			public FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@465-6(IAsyncEnumerator<T> e, FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res)
			{
				this.e = e;
				this.res = res;
			}

			public override FSharpAsync<Unit> Invoke(Unit unitVar)
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Bind<FSharpOption<T>, Unit>(e.MoveNext(), (FSharpFunc<FSharpOption<T>, FSharpAsync<Unit>>)new tryWith@466-7<T>(res));
			}
		}

		[Serializable]
		internal sealed class tryWith@464-8<T> : FSharpFunc<Exception, FSharpAsync<Unit>>
		{
			public FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@464-8(FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res)
			{
				this.res = res;
			}

			public override FSharpAsync<Unit> Invoke(Exception _arg3)
			{
				((FSharpRef<FSharpChoice<FSharpOption<FSharpChoice<FSharpOption<T>, Exception>>, Exception>>)(object)res).contents = (FSharpChoice<FSharpOption<FSharpChoice<FSharpOption<T>, Exception>>, Exception>)(object)FSharpChoice<FSharpOption<FSharpOption<T>>, Exception>.NewChoice2Of2(_arg3);
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Zero();
			}
		}

		[Serializable]
		internal sealed class tryWith@469-9<T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>
		{
			public FSharpFunc<Exception, IAsyncEnumerable<T>> handler;

			public FSharpRef<TryWithState<T>> state;

			public IAsyncEnumerator<T> x;

			public FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@469-9(FSharpFunc<Exception, IAsyncEnumerable<T>> handler, FSharpRef<TryWithState<T>> state, IAsyncEnumerator<T> x, FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res)
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
				this.handler = handler;
				this.state = state;
				this.x = x;
				this.res = res;
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(Unit unitVar)
			{
				FSharpChoice<FSharpOption<T>, Exception> contents = ((FSharpRef<FSharpChoice<FSharpOption<FSharpChoice<FSharpOption<T>, Exception>>, Exception>>)(object)res).contents;
				if (contents is Choice2Of2<FSharpOption<T>, Exception>)
				{
					Choice2Of2<FSharpOption<T>, Exception> val = (Choice2Of2<FSharpOption<T>, Exception>)(object)contents;
					Exception item = ((Choice2Of2<FSharpOption<FSharpOption<T>>, Exception>)(object)val).Item;
					x.Dispose();
					IAsyncEnumerator<T> enumerator = ((FSharpFunc<Exception, IAsyncEnumerable<Exception>>)(object)handler).Invoke(item).GetEnumerator();
					((FSharpRef<TryWithState<TryWithState<T>>>)(object)state).contents = (TryWithState<TryWithState<T>>)(object)TryWithState<T>.NewHaveHandlerEnumerator(enumerator);
					return x.MoveNext();
				}
				Choice1Of2<FSharpOption<T>, Exception> val2 = (Choice1Of2<FSharpOption<T>, Exception>)(object)contents;
				FSharpOption<T> item2 = ((Choice1Of2<FSharpOption<FSharpOption<T>>, Exception>)(object)val2).Item;
				FSharpAsyncBuilder defaultAsyncBuilder = ExtraTopLevelOperators.DefaultAsyncBuilder;
				if (item2 == null)
				{
					x.Dispose();
				}
				return defaultAsyncBuilder.Return<FSharpOption<T>>(item2);
			}
		}

		[Serializable]
		internal sealed class tryWith@484-10<T> : FSharpFunc<FSharpOption<T>, FSharpAsync<FSharpOption<T>>>
		{
			public IAsyncEnumerator<T> x;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@484-10(IAsyncEnumerator<T> x)
			{
				((FSharpFunc<FSharpOption<FSharpOption<T>>, FSharpAsync<FSharpOption<FSharpOption<T>>>>)(object)this)..ctor();
				this.x = x;
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(FSharpOption<T> _arg4)
			{
				FSharpAsyncBuilder defaultAsyncBuilder = ExtraTopLevelOperators.DefaultAsyncBuilder;
				object obj;
				if (_arg4 == null)
				{
					x.Dispose();
					obj = null;
				}
				else
				{
					obj = _arg4;
				}
				return defaultAsyncBuilder.Return<FSharpOption<T>>((FSharpOption<T>)obj);
			}
		}

		[Serializable]
		internal sealed class tryWith@444-2<T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>
		{
			public FSharpFunc<Exception, IAsyncEnumerable<T>> handler;

			public FSharpRef<TryWithState<T>> state;

			public IAsyncEnumerator<T> x;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryWith@444-2(FSharpFunc<Exception, IAsyncEnumerable<T>> handler, FSharpRef<TryWithState<T>> state, IAsyncEnumerator<T> x)
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
				this.handler = handler;
				this.state = state;
				this.x = x;
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(Unit unitVar)
			{
				TryWithState<T> contents = ((FSharpRef<TryWithState<TryWithState<T>>>)(object)state).contents;
				switch (contents.Tag)
				{
				default:
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<T>>((FSharpOption<T>)null);
				case 0:
				{
					TryWithState<T>.NotStarted notStarted = (TryWithState<T>.NotStarted)contents;
					IAsyncEnumerable<T> item2 = notStarted.item;
					FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>> res2 = (FSharpRef<FSharpChoice<IAsyncEnumerator<T>, Exception>>)(object)new FSharpRef<FSharpChoice<IAsyncEnumerator<FSharpChoice<IAsyncEnumerator<T>, Exception>>, Exception>>((FSharpChoice<IAsyncEnumerator<FSharpChoice<IAsyncEnumerator<T>, Exception>>, Exception>)null);
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Combine<FSharpOption<T>>(ExtraTopLevelOperators.DefaultAsyncBuilder.TryWith<Unit>(ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<Unit>((FSharpFunc<Unit, FSharpAsync<Unit>>)new tryWith@448-3<T>(item2, res2)), (FSharpFunc<Exception, FSharpAsync<Unit>>)new tryWith@447-4<T>(res2)), ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<FSharpOption<T>>((FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>)new tryWith@451-5<T>(handler, state, x, res2)));
				}
				case 1:
				{
					TryWithState<T>.HaveBodyEnumerator haveBodyEnumerator = (TryWithState<T>.HaveBodyEnumerator)contents;
					IAsyncEnumerator<T> item = haveBodyEnumerator.item;
					FSharpRef<FSharpChoice<FSharpOption<T>, Exception>> res = (FSharpRef<FSharpChoice<FSharpOption<T>, Exception>>)(object)new FSharpRef<FSharpChoice<FSharpOption<FSharpChoice<FSharpOption<T>, Exception>>, Exception>>((FSharpChoice<FSharpOption<FSharpChoice<FSharpOption<T>, Exception>>, Exception>)null);
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Combine<FSharpOption<T>>(ExtraTopLevelOperators.DefaultAsyncBuilder.TryWith<Unit>(ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<Unit>((FSharpFunc<Unit, FSharpAsync<Unit>>)new tryWith@465-6<T>(item, res)), (FSharpFunc<Exception, FSharpAsync<Unit>>)new tryWith@464-8<T>(res)), ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<FSharpOption<T>>((FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>)new tryWith@469-9<T>(handler, state, x, res)));
				}
				case 2:
				{
					TryWithState<T>.HaveHandlerEnumerator haveHandlerEnumerator = (TryWithState<T>.HaveHandlerEnumerator)contents;
					IAsyncEnumerator<T> item = haveHandlerEnumerator.item;
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Bind<FSharpOption<T>, FSharpOption<T>>(item.MoveNext(), (FSharpFunc<FSharpOption<T>, FSharpAsync<FSharpOption<T>>>)new tryWith@484-10<T>(x));
				}
				}
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class tryWith@442-1<T> : IAsyncEnumerator<T>
		{
			public FSharpFunc<Exception, IAsyncEnumerable<T>> handler;

			public FSharpRef<TryWithState<T>> state;

			public tryWith@442-1(FSharpFunc<Exception, IAsyncEnumerable<T>> handler, FSharpRef<TryWithState<T>> state)
			{
				this.handler = handler;
				this.state = state;
				base..ctor();
			}

			private FSharpAsync<FSharpOption<T>> FSharp-Control-IAsyncEnumerator`1-MoveNext()
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<FSharpOption<T>>((FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>)new tryWith@444-2<T>(handler, state, this));
			}

			FSharpAsync<FSharpOption<T>> IAsyncEnumerator<T>.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerator`1-MoveNext
				return this.FSharp-Control-IAsyncEnumerator`1-MoveNext();
			}

			private void System-IDisposable-Dispose()
			{
				TryWithState<T> contents = ((FSharpRef<TryWithState<TryWithState<T>>>)(object)state).contents;
				IAsyncEnumerator<T> item;
				switch (contents.Tag)
				{
				default:
					return;
				case 1:
					item = ((TryWithState<T>.HaveBodyEnumerator)contents).item;
					break;
				case 2:
					item = ((TryWithState<T>.HaveHandlerEnumerator)contents).item;
					break;
				}
				((FSharpRef<TryWithState<TryWithState<T>>>)(object)state).contents = (TryWithState<TryWithState<T>>)(object)TryWithState<T>.Finished;
				item?.Dispose();
			}

			void IDisposable.Dispose()
			{
				//ILSpy generated this explicit interface implementation from .override directive in System-IDisposable-Dispose
				this.System-IDisposable-Dispose();
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class tryWith@439<T> : IAsyncEnumerable<T>
		{
			public IAsyncEnumerable<T> inp;

			public FSharpFunc<Exception, IAsyncEnumerable<T>> handler;

			public tryWith@439(IAsyncEnumerable<T> inp, FSharpFunc<Exception, IAsyncEnumerable<T>> handler)
			{
				this.inp = inp;
				this.handler = handler;
				base..ctor();
			}

			private IAsyncEnumerator<T> FSharp-Control-IAsyncEnumerable`1-GetEnumerator()
			{
				FSharpRef<TryWithState<T>> state = (FSharpRef<TryWithState<T>>)(object)new FSharpRef<TryWithState<TryWithState<T>>>((TryWithState<TryWithState<T>>)(object)TryWithState<T>.NewNotStarted(inp));
				return new tryWith@442-1<T>(handler, state);
			}

			IAsyncEnumerator<T> IAsyncEnumerable<T>.GetEnumerator()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerable`1-GetEnumerator
				return this.FSharp-Control-IAsyncEnumerable`1-GetEnumerator();
			}
		}

		[Serializable]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[RequireQualifiedAccess]
		[DebuggerDisplay("{__DebugDisplay(),nq}")]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal abstract class TryFinallyState<T> : IEquatable<TryFinallyState<T>>, IStructuralEquatable
		{
			internal static class Tags
			{
				public const int NotStarted = 0;

				public const int HaveBodyEnumerator = 1;

				public const int Finished = 2;
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(TryFinallyState<>.NotStarted@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class NotStarted : TryFinallyState<T>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerable<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal NotStarted(IAsyncEnumerable<T> item)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(TryFinallyState<>.HaveBodyEnumerator@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class HaveBodyEnumerator : TryFinallyState<T>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerator<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal HaveBodyEnumerator(IAsyncEnumerator<T> item)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(TryFinallyState<>._Finished@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class _Finished : TryFinallyState<T>
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal _Finished()
				{
				}
			}

			[SpecialName]
			internal class NotStarted@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public NotStarted@DebugTypeProxy(NotStarted obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class HaveBodyEnumerator@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public HaveBodyEnumerator@DebugTypeProxy(HaveBodyEnumerator obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class _Finished@DebugTypeProxy
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public _Finished@DebugTypeProxy(_Finished obj)
				{
					_obj = obj;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal int Tag
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return (this is _Finished) ? 2 : ((this is HaveBodyEnumerator) ? 1 : 0);
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsNotStarted
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return this is NotStarted;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsHaveBodyEnumerator
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return this is HaveBodyEnumerator;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal static TryFinallyState<T> Finished
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				get
				{
					return _unique_Finished;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsFinished
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return this is _Finished;
				}
			}

			static TryFinallyState()
			{
				_unique_Finished = new _Finished();
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal TryFinallyState()
			{
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static TryFinallyState<T> NewNotStarted(IAsyncEnumerable<T> item)
			{
				return new NotStarted(item);
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static TryFinallyState<T> NewHaveBodyEnumerator(IAsyncEnumerator<T> item)
			{
				return new HaveBodyEnumerator(item);
			}

			[SpecialName]
			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal object __DebugDisplay()
			{
				return ((FSharpFunc<TryFinallyState<TryFinallyState<T>>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<TryFinallyState<T>, string>>((PrintfFormat<FSharpFunc<TryFinallyState<T>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<TryFinallyState<FSharpFunc<TryFinallyState<T>, string>>, string>, Unit, string, string, string>("%+0.8A"))).Invoke((TryFinallyState<TryFinallyState<T>>)(object)this);
			}

			[CompilerGenerated]
			public override string ToString()
			{
				return ((FSharpFunc<TryFinallyState<TryFinallyState<T>>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<TryFinallyState<T>, string>>((PrintfFormat<FSharpFunc<TryFinallyState<T>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<TryFinallyState<FSharpFunc<TryFinallyState<T>, string>>, string>, Unit, string, string, TryFinallyState<FSharpFunc<TryFinallyState<T>, string>>>("%+A"))).Invoke((TryFinallyState<TryFinallyState<T>>)(object)this);
			}

			[CompilerGenerated]
			public virtual sealed int GetHashCode(IEqualityComparer comp)
			{
				if (this != null)
				{
					int num = 0;
					if (!(this is NotStarted))
					{
						if (!(this is HaveBodyEnumerator))
						{
							return (this is _Finished) ? 2 : ((this is HaveBodyEnumerator) ? 1 : 0);
						}
						HaveBodyEnumerator haveBodyEnumerator = (HaveBodyEnumerator)this;
						num = 1;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveBodyEnumerator.item) + ((num << 6) + (num >> 2)));
					}
					NotStarted notStarted = (NotStarted)this;
					num = 0;
					return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerable<T>>(comp, notStarted.item) + ((num << 6) + (num >> 2)));
				}
				return 0;
			}

			[CompilerGenerated]
			public sealed override int GetHashCode()
			{
				return GetHashCode(LanguagePrimitives.GenericEqualityComparer);
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(object obj, IEqualityComparer comp)
			{
				if (this != null)
				{
					if (obj is TryFinallyState<T> tryFinallyState)
					{
						int num = ((this is _Finished) ? 2 : ((this is HaveBodyEnumerator) ? 1 : 0));
						TryFinallyState<T> tryFinallyState2 = tryFinallyState;
						int num2 = ((tryFinallyState2 is _Finished) ? 2 : ((tryFinallyState2 is HaveBodyEnumerator) ? 1 : 0));
						if (num == num2)
						{
							if (!(this is NotStarted))
							{
								if (!(this is HaveBodyEnumerator))
								{
									return true;
								}
								HaveBodyEnumerator haveBodyEnumerator = (HaveBodyEnumerator)this;
								HaveBodyEnumerator haveBodyEnumerator2 = (HaveBodyEnumerator)tryFinallyState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveBodyEnumerator.item, haveBodyEnumerator2.item);
							}
							NotStarted notStarted = (NotStarted)this;
							NotStarted notStarted2 = (NotStarted)tryFinallyState;
							return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerable<T>>(comp, notStarted.item, notStarted2.item);
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(TryFinallyState<T> obj)
			{
				if (this != null)
				{
					if (obj != null)
					{
						int num = ((this is _Finished) ? 2 : ((this is HaveBodyEnumerator) ? 1 : 0));
						int num2 = ((obj is _Finished) ? 2 : ((obj is HaveBodyEnumerator) ? 1 : 0));
						if (num == num2)
						{
							if (!(this is NotStarted))
							{
								if (!(this is HaveBodyEnumerator))
								{
									return true;
								}
								HaveBodyEnumerator haveBodyEnumerator = (HaveBodyEnumerator)this;
								HaveBodyEnumerator haveBodyEnumerator2 = (HaveBodyEnumerator)obj;
								return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerator<T>>(haveBodyEnumerator.item, haveBodyEnumerator2.item);
							}
							NotStarted notStarted = (NotStarted)this;
							NotStarted notStarted2 = (NotStarted)obj;
							return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerable<T>>(notStarted.item, notStarted2.item);
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public sealed override bool Equals(object obj)
			{
				if (obj is TryFinallyState<T> obj2)
				{
					return Equals(obj2);
				}
				return false;
			}
		}

		[Serializable]
		internal sealed class tryFinally@519-3<T> : FSharpFunc<FSharpOption<T>, FSharpAsync<FSharpOption<T>>>
		{
			public IAsyncEnumerator<T> x;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryFinally@519-3(IAsyncEnumerator<T> x)
			{
				((FSharpFunc<FSharpOption<FSharpOption<T>>, FSharpAsync<FSharpOption<FSharpOption<T>>>>)(object)this)..ctor();
				this.x = x;
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(FSharpOption<T> _arg1)
			{
				FSharpAsyncBuilder defaultAsyncBuilder = ExtraTopLevelOperators.DefaultAsyncBuilder;
				if (_arg1 == null)
				{
					x.Dispose();
				}
				return defaultAsyncBuilder.Return<FSharpOption<T>>(_arg1);
			}
		}

		[Serializable]
		internal sealed class tryFinally@511-2<T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>
		{
			public FSharpRef<TryFinallyState<T>> state;

			public IAsyncEnumerator<T> x;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal tryFinally@511-2(FSharpRef<TryFinallyState<T>> state, IAsyncEnumerator<T> x)
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
				this.state = state;
				this.x = x;
			}

			public override FSharpAsync<FSharpOption<T>> Invoke(Unit unitVar)
			{
				TryFinallyState<T> contents = ((FSharpRef<TryFinallyState<TryFinallyState<T>>>)(object)state).contents;
				TryFinallyState<T> tryFinallyState = contents;
				IAsyncEnumerator<T> item;
				if (!(tryFinallyState is TryFinallyState<T>.NotStarted))
				{
					if (!(tryFinallyState is TryFinallyState<T>.HaveBodyEnumerator))
					{
						return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<T>>((FSharpOption<T>)null);
					}
					TryFinallyState<T>.HaveBodyEnumerator haveBodyEnumerator = (TryFinallyState<T>.HaveBodyEnumerator)contents;
					item = haveBodyEnumerator.item;
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Bind<FSharpOption<T>, FSharpOption<T>>(item.MoveNext(), (FSharpFunc<FSharpOption<T>, FSharpAsync<FSharpOption<T>>>)new tryFinally@519-3<T>(x));
				}
				TryFinallyState<T>.NotStarted notStarted = (TryFinallyState<T>.NotStarted)contents;
				IAsyncEnumerable<T> item2 = notStarted.item;
				item = item2.GetEnumerator();
				((FSharpRef<TryFinallyState<TryFinallyState<T>>>)(object)state).contents = (TryFinallyState<TryFinallyState<T>>)(object)TryFinallyState<T>.NewHaveBodyEnumerator(item);
				return x.MoveNext();
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class tryFinally@509-1<T> : IAsyncEnumerator<T>
		{
			public FSharpFunc<Unit, Unit> compensation;

			public FSharpRef<TryFinallyState<T>> state;

			public tryFinally@509-1(FSharpFunc<Unit, Unit> compensation, FSharpRef<TryFinallyState<T>> state)
			{
				this.compensation = compensation;
				this.state = state;
				base..ctor();
			}

			private FSharpAsync<FSharpOption<T>> FSharp-Control-IAsyncEnumerator`1-MoveNext()
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<FSharpOption<T>>((FSharpFunc<Unit, FSharpAsync<FSharpOption<T>>>)new tryFinally@511-2<T>(state, this));
			}

			FSharpAsync<FSharpOption<T>> IAsyncEnumerator<T>.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerator`1-MoveNext
				return this.FSharp-Control-IAsyncEnumerator`1-MoveNext();
			}

			private void System-IDisposable-Dispose()
			{
				TryFinallyState<T> contents = ((FSharpRef<TryFinallyState<TryFinallyState<T>>>)(object)state).contents;
				if (contents is TryFinallyState<T>.HaveBodyEnumerator)
				{
					TryFinallyState<T>.HaveBodyEnumerator haveBodyEnumerator = (TryFinallyState<T>.HaveBodyEnumerator)contents;
					IAsyncEnumerator<T> item = haveBodyEnumerator.item;
					((FSharpRef<TryFinallyState<TryFinallyState<T>>>)(object)state).contents = (TryFinallyState<TryFinallyState<T>>)(object)TryFinallyState<T>.Finished;
					item?.Dispose();
					compensation.Invoke((Unit)null);
				}
			}

			void IDisposable.Dispose()
			{
				//ILSpy generated this explicit interface implementation from .override directive in System-IDisposable-Dispose
				this.System-IDisposable-Dispose();
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class tryFinally@506<T> : IAsyncEnumerable<T>
		{
			public IAsyncEnumerable<T> inp;

			public FSharpFunc<Unit, Unit> compensation;

			public tryFinally@506(IAsyncEnumerable<T> inp, FSharpFunc<Unit, Unit> compensation)
			{
				this.inp = inp;
				this.compensation = compensation;
				base..ctor();
			}

			private IAsyncEnumerator<T> FSharp-Control-IAsyncEnumerable`1-GetEnumerator()
			{
				FSharpRef<TryFinallyState<T>> state = (FSharpRef<TryFinallyState<T>>)(object)new FSharpRef<TryFinallyState<TryFinallyState<T>>>((TryFinallyState<TryFinallyState<T>>)(object)TryFinallyState<T>.NewNotStarted(inp));
				return new tryFinally@509-1<T>(compensation, state);
			}

			IAsyncEnumerator<T> IAsyncEnumerable<T>.GetEnumerator()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerable`1-GetEnumerator
				return this.FSharp-Control-IAsyncEnumerable`1-GetEnumerator();
			}
		}

		[Serializable]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[RequireQualifiedAccess]
		[DebuggerDisplay("{__DebugDisplay(),nq}")]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal class CollectState<T, U> : IEquatable<CollectState<T, U>>, IStructuralEquatable
		{
			internal static class Tags
			{
				public const int NotStarted = 0;

				public const int HaveInputEnumerator = 1;

				public const int HaveInnerEnumerator = 2;

				public const int Finished = 3;
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(CollectState<, >.NotStarted@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class NotStarted : CollectState<T, U>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerable<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal NotStarted(IAsyncEnumerable<T> item)
					: base(0)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(CollectState<, >.HaveInputEnumerator@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class HaveInputEnumerator : CollectState<T, U>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerator<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal HaveInputEnumerator(IAsyncEnumerator<T> item)
					: base(1)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(CollectState<, >.HaveInnerEnumerator@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class HaveInnerEnumerator : CollectState<T, U>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerator<T> item1;

				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerator<U> item2;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerator<T> Item1
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item1;
					}
				}

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerator<U> Item2
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item2;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal HaveInnerEnumerator(IAsyncEnumerator<T> item1, IAsyncEnumerator<U> item2)
					: base(2)
				{
					this.item1 = item1;
					this.item2 = item2;
				}
			}

			[SpecialName]
			internal class NotStarted@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public NotStarted@DebugTypeProxy(NotStarted obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class HaveInputEnumerator@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public HaveInputEnumerator@DebugTypeProxy(HaveInputEnumerator obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class HaveInnerEnumerator@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerator<T> Item1
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item1;
					}
				}

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerator<U> Item2
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item2;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public HaveInnerEnumerator@DebugTypeProxy(HaveInnerEnumerator obj)
				{
					_obj = obj;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal int Tag
			{
				[DebuggerNonUserCode]
				get;
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsNotStarted
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 0;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsHaveInputEnumerator
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 1;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsHaveInnerEnumerator
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 2;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal static CollectState<T, U> Finished
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				get
				{
					return _unique_Finished;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsFinished
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 3;
				}
			}

			static CollectState()
			{
				_unique_Finished = new CollectState<T, U>(3);
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal CollectState(int _tag)
			{
				this._tag = _tag;
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static CollectState<T, U> NewNotStarted(IAsyncEnumerable<T> item)
			{
				return new NotStarted(item);
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static CollectState<T, U> NewHaveInputEnumerator(IAsyncEnumerator<T> item)
			{
				return new HaveInputEnumerator(item);
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static CollectState<T, U> NewHaveInnerEnumerator(IAsyncEnumerator<T> item1, IAsyncEnumerator<U> item2)
			{
				return new HaveInnerEnumerator(item1, item2);
			}

			[SpecialName]
			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal object __DebugDisplay()
			{
				return ((FSharpFunc<CollectState<CollectState<T, U>, string>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<CollectState<T, U>, string>>((PrintfFormat<FSharpFunc<CollectState<T, U>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<CollectState<FSharpFunc<CollectState<T, U>, string>, Unit>, string>, Unit, string, string, string>("%+0.8A"))).Invoke((CollectState<CollectState<T, U>, string>)(object)this);
			}

			[CompilerGenerated]
			public override string ToString()
			{
				return ((FSharpFunc<CollectState<CollectState<T, U>, string>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<CollectState<T, U>, string>>((PrintfFormat<FSharpFunc<CollectState<T, U>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<CollectState<FSharpFunc<CollectState<T, U>, string>, Unit>, string>, Unit, string, string, CollectState<FSharpFunc<CollectState<T, U>, string>, Unit>>("%+A"))).Invoke((CollectState<CollectState<T, U>, string>)(object)this);
			}

			[CompilerGenerated]
			public virtual sealed int GetHashCode(IEqualityComparer comp)
			{
				if (this != null)
				{
					int num = 0;
					switch (Tag)
					{
					default:
						return _tag;
					case 0:
					{
						NotStarted notStarted = (NotStarted)this;
						num = 0;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerable<T>>(comp, notStarted.item) + ((num << 6) + (num >> 2)));
					}
					case 1:
					{
						HaveInputEnumerator haveInputEnumerator = (HaveInputEnumerator)this;
						num = 1;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveInputEnumerator.item) + ((num << 6) + (num >> 2)));
					}
					case 2:
					{
						HaveInnerEnumerator haveInnerEnumerator = (HaveInnerEnumerator)this;
						num = 2;
						num = -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerator<U>>(comp, haveInnerEnumerator.item2) + ((num << 6) + (num >> 2)));
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveInnerEnumerator.item1) + ((num << 6) + (num >> 2)));
					}
					}
				}
				return 0;
			}

			[CompilerGenerated]
			public sealed override int GetHashCode()
			{
				return GetHashCode(LanguagePrimitives.GenericEqualityComparer);
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(object obj, IEqualityComparer comp)
			{
				if (this != null)
				{
					if (obj is CollectState<T, U> collectState)
					{
						int tag = _tag;
						int tag2 = collectState._tag;
						if (tag == tag2)
						{
							switch (Tag)
							{
							default:
								return true;
							case 0:
							{
								NotStarted notStarted = (NotStarted)this;
								NotStarted notStarted2 = (NotStarted)collectState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerable<T>>(comp, notStarted.item, notStarted2.item);
							}
							case 1:
							{
								HaveInputEnumerator haveInputEnumerator = (HaveInputEnumerator)this;
								HaveInputEnumerator haveInputEnumerator2 = (HaveInputEnumerator)collectState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveInputEnumerator.item, haveInputEnumerator2.item);
							}
							case 2:
							{
								HaveInnerEnumerator haveInnerEnumerator = (HaveInnerEnumerator)this;
								HaveInnerEnumerator haveInnerEnumerator2 = (HaveInnerEnumerator)collectState;
								if (HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerator<T>>(comp, haveInnerEnumerator.item1, haveInnerEnumerator2.item1))
								{
									return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerator<U>>(comp, haveInnerEnumerator.item2, haveInnerEnumerator2.item2);
								}
								return false;
							}
							}
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(CollectState<T, U> obj)
			{
				if (this != null)
				{
					if (obj != null)
					{
						int tag = _tag;
						int tag2 = obj._tag;
						if (tag == tag2)
						{
							switch (Tag)
							{
							default:
								return true;
							case 0:
							{
								NotStarted notStarted = (NotStarted)this;
								NotStarted notStarted2 = (NotStarted)obj;
								return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerable<T>>(notStarted.item, notStarted2.item);
							}
							case 1:
							{
								HaveInputEnumerator haveInputEnumerator = (HaveInputEnumerator)this;
								HaveInputEnumerator haveInputEnumerator2 = (HaveInputEnumerator)obj;
								return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerator<T>>(haveInputEnumerator.item, haveInputEnumerator2.item);
							}
							case 2:
							{
								HaveInnerEnumerator haveInnerEnumerator = (HaveInnerEnumerator)this;
								HaveInnerEnumerator haveInnerEnumerator2 = (HaveInnerEnumerator)obj;
								if (HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerator<T>>(haveInnerEnumerator.item1, haveInnerEnumerator2.item1))
								{
									return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerator<U>>(haveInnerEnumerator.item2, haveInnerEnumerator2.item2);
								}
								return false;
							}
							}
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public sealed override bool Equals(object obj)
			{
				if (obj is CollectState<T, U> obj2)
				{
					return Equals(obj2);
				}
				return false;
			}
		}

		[Serializable]
		internal sealed class collect@556-3<T, TResult> : FSharpFunc<FSharpOption<T>, FSharpAsync<FSharpOption<TResult>>>
		{
			public FSharpFunc<T, IAsyncEnumerable<TResult>> f;

			public FSharpRef<CollectState<T, TResult>> state;

			public IAsyncEnumerator<TResult> x;

			public IAsyncEnumerator<T> e1;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal collect@556-3(FSharpFunc<T, IAsyncEnumerable<TResult>> f, FSharpRef<CollectState<T, TResult>> state, IAsyncEnumerator<TResult> x, IAsyncEnumerator<T> e1)
			{
				((FSharpFunc<FSharpOption<FSharpOption<T>>, FSharpAsync<FSharpOption<FSharpAsync<FSharpOption<TResult>>>>>)(object)this)..ctor();
				this.f = f;
				this.state = state;
				this.x = x;
				this.e1 = e1;
			}

			public override FSharpAsync<FSharpOption<TResult>> Invoke(FSharpOption<T> _arg1)
			{
				if (_arg1 == null)
				{
					x.Dispose();
				}
				else
				{
					T value = _arg1.Value;
					IAsyncEnumerator<TResult> enumerator = ((FSharpFunc<T, IAsyncEnumerable<IAsyncEnumerable<TResult>>>)(object)f).Invoke(value).GetEnumerator();
					((FSharpRef<CollectState<CollectState<T, TResult>, ?>>)(object)state).contents = (CollectState<CollectState<T, TResult>, ?>)(object)CollectState<T, TResult>.NewHaveInnerEnumerator(e1, enumerator);
				}
				return x.MoveNext();
			}
		}

		[Serializable]
		internal sealed class collect@566-4<TResult, T> : FSharpFunc<FSharpOption<TResult>, FSharpAsync<FSharpOption<TResult>>>
		{
			public FSharpRef<CollectState<T, TResult>> state;

			public IAsyncEnumerator<TResult> x;

			public IAsyncEnumerator<TResult> e2;

			public IAsyncEnumerator<T> e1;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal collect@566-4(FSharpRef<CollectState<T, TResult>> state, IAsyncEnumerator<TResult> x, IAsyncEnumerator<TResult> e2, IAsyncEnumerator<T> e1)
			{
				((FSharpFunc<FSharpOption<FSharpOption<TResult>>, FSharpAsync<FSharpOption<FSharpOption<TResult>>>>)(object)this)..ctor();
				this.state = state;
				this.x = x;
				this.e2 = e2;
				this.e1 = e1;
			}

			public override FSharpAsync<FSharpOption<TResult>> Invoke(FSharpOption<TResult> _arg2)
			{
				if (_arg2 != null)
				{
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<TResult>>(_arg2);
				}
				((FSharpRef<CollectState<?, CollectState<T, TResult>>>)(object)state).contents = (CollectState<?, CollectState<T, TResult>>)(object)CollectState<T, TResult>.NewHaveInputEnumerator(e1);
				e2?.Dispose();
				return x.MoveNext();
			}
		}

		[Serializable]
		internal sealed class collect@548-2<TResult, T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<TResult>>>
		{
			public FSharpFunc<T, IAsyncEnumerable<TResult>> f;

			public FSharpRef<CollectState<T, TResult>> state;

			public IAsyncEnumerator<TResult> x;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal collect@548-2(FSharpFunc<T, IAsyncEnumerable<TResult>> f, FSharpRef<CollectState<T, TResult>> state, IAsyncEnumerator<TResult> x)
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
				this.f = f;
				this.state = state;
				this.x = x;
			}

			public override FSharpAsync<FSharpOption<TResult>> Invoke(Unit unitVar)
			{
				CollectState<T, TResult> contents = ((FSharpRef<CollectState<?, CollectState<T, TResult>>>)(object)state).contents;
				switch (contents.Tag)
				{
				default:
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<TResult>>((FSharpOption<TResult>)null);
				case 0:
				{
					CollectState<T, TResult>.NotStarted notStarted = (CollectState<T, TResult>.NotStarted)contents;
					IAsyncEnumerable<T> item3 = notStarted.item;
					IAsyncEnumerator<T> item2 = item3.GetEnumerator();
					((FSharpRef<CollectState<?, CollectState<T, TResult>>>)(object)state).contents = (CollectState<?, CollectState<T, TResult>>)(object)CollectState<T, TResult>.NewHaveInputEnumerator(item2);
					return x.MoveNext();
				}
				case 1:
				{
					CollectState<T, TResult>.HaveInputEnumerator haveInputEnumerator = (CollectState<T, TResult>.HaveInputEnumerator)contents;
					IAsyncEnumerator<T> item2 = haveInputEnumerator.item;
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Bind<FSharpOption<T>, FSharpOption<TResult>>(item2.MoveNext(), (FSharpFunc<FSharpOption<T>, FSharpAsync<FSharpOption<TResult>>>)new collect@556-3<T, TResult>(f, state, x, item2));
				}
				case 2:
				{
					CollectState<T, TResult>.HaveInnerEnumerator haveInnerEnumerator = (CollectState<T, TResult>.HaveInnerEnumerator)contents;
					IAsyncEnumerator<TResult> item = haveInnerEnumerator.item2;
					IAsyncEnumerator<T> item2 = haveInnerEnumerator.item1;
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Bind<FSharpOption<TResult>, FSharpOption<TResult>>(item.MoveNext(), (FSharpFunc<FSharpOption<TResult>, FSharpAsync<FSharpOption<TResult>>>)new collect@566-4<TResult, T>(state, x, item, item2));
				}
				}
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class collect@546-1<TResult, T> : IAsyncEnumerator<TResult>
		{
			public FSharpFunc<T, IAsyncEnumerable<TResult>> f;

			public FSharpRef<CollectState<T, TResult>> state;

			public collect@546-1(FSharpFunc<T, IAsyncEnumerable<TResult>> f, FSharpRef<CollectState<T, TResult>> state)
			{
				this.f = f;
				this.state = state;
				base..ctor();
			}

			private FSharpAsync<FSharpOption<TResult>> FSharp-Control-IAsyncEnumerator`1-MoveNext()
			{
				return ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<FSharpOption<TResult>>((FSharpFunc<Unit, FSharpAsync<FSharpOption<TResult>>>)new collect@548-2<TResult, T>(f, state, this));
			}

			FSharpAsync<FSharpOption<TResult>> IAsyncEnumerator<TResult>.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerator`1-MoveNext
				return this.FSharp-Control-IAsyncEnumerator`1-MoveNext();
			}

			private void System-IDisposable-Dispose()
			{
				CollectState<T, TResult> contents = ((FSharpRef<CollectState<?, CollectState<T, TResult>>>)(object)state).contents;
				switch (contents.Tag)
				{
				case 1:
				{
					CollectState<T, TResult>.HaveInputEnumerator haveInputEnumerator = (CollectState<T, TResult>.HaveInputEnumerator)contents;
					IAsyncEnumerator<T> item2 = haveInputEnumerator.item;
					((FSharpRef<CollectState<?, CollectState<T, TResult>>>)(object)state).contents = (CollectState<?, CollectState<T, TResult>>)(object)CollectState<T, TResult>.Finished;
					item2?.Dispose();
					break;
				}
				case 2:
				{
					CollectState<T, TResult>.HaveInnerEnumerator haveInnerEnumerator = (CollectState<T, TResult>.HaveInnerEnumerator)contents;
					IAsyncEnumerator<TResult> item = haveInnerEnumerator.item2;
					IAsyncEnumerator<T> item2 = haveInnerEnumerator.item1;
					((FSharpRef<CollectState<?, CollectState<T, TResult>>>)(object)state).contents = (CollectState<?, CollectState<T, TResult>>)(object)CollectState<T, TResult>.Finished;
					item?.Dispose();
					item2?.Dispose();
					break;
				}
				}
			}

			void IDisposable.Dispose()
			{
				//ILSpy generated this explicit interface implementation from .override directive in System-IDisposable-Dispose
				this.System-IDisposable-Dispose();
			}
		}

		[Serializable]
		[SpecialName]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal sealed class collect@543<TResult, T> : IAsyncEnumerable<TResult>
		{
			public FSharpFunc<T, IAsyncEnumerable<TResult>> f;

			public IAsyncEnumerable<T> inp;

			public collect@543(FSharpFunc<T, IAsyncEnumerable<TResult>> f, IAsyncEnumerable<T> inp)
			{
				this.f = f;
				this.inp = inp;
				base..ctor();
			}

			private IAsyncEnumerator<TResult> FSharp-Control-IAsyncEnumerable`1-GetEnumerator()
			{
				FSharpRef<CollectState<T, TResult>> state = (FSharpRef<CollectState<T, TResult>>)(object)new FSharpRef<CollectState<?, CollectState<T, TResult>>>((CollectState<?, CollectState<T, TResult>>)(object)CollectState<T, TResult>.NewNotStarted(inp));
				return new collect@546-1<TResult, T>(f, state);
			}

			IAsyncEnumerator<TResult> IAsyncEnumerable<TResult>.GetEnumerator()
			{
				//ILSpy generated this explicit interface implementation from .override directive in FSharp-Control-IAsyncEnumerable`1-GetEnumerator
				return this.FSharp-Control-IAsyncEnumerable`1-GetEnumerator();
			}
		}

		[Serializable]
		[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)]
		[RequireQualifiedAccess]
		[DebuggerDisplay("{__DebugDisplay(),nq}")]
		[CompilationMapping(/*Could not decode attribute arguments.*/)]
		internal class CollectSeqState<T, U> : IEquatable<CollectSeqState<T, U>>, IStructuralEquatable
		{
			internal static class Tags
			{
				public const int NotStarted = 0;

				public const int HaveInputEnumerator = 1;

				public const int HaveInnerEnumerator = 2;

				public const int Finished = 3;
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(CollectSeqState<, >.NotStarted@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class NotStarted : CollectSeqState<T, U>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IEnumerable<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal NotStarted(IEnumerable<T> item)
					: base(0)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(CollectSeqState<, >.HaveInputEnumerator@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class HaveInputEnumerator : CollectSeqState<T, U>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IEnumerator<T> item;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal HaveInputEnumerator(IEnumerator<T> item)
					: base(1)
				{
					this.item = item;
				}
			}

			[Serializable]
			[SpecialName]
			[DebuggerTypeProxy(typeof(CollectSeqState<, >.HaveInnerEnumerator@DebugTypeProxy))]
			[DebuggerDisplay("{__DebugDisplay(),nq}")]
			internal class HaveInnerEnumerator : CollectSeqState<T, U>
			{
				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IEnumerator<T> item1;

				[DebuggerBrowsable(DebuggerBrowsableState.Never)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal readonly IAsyncEnumerator<U> item2;

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IEnumerator<T> Item1
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item1;
					}
				}

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal IAsyncEnumerator<U> Item2
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return item2;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				internal HaveInnerEnumerator(IEnumerator<T> item1, IAsyncEnumerator<U> item2)
					: base(2)
				{
					this.item1 = item1;
					this.item2 = item2;
				}
			}

			[SpecialName]
			internal class NotStarted@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IEnumerable<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public NotStarted@DebugTypeProxy(NotStarted obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class HaveInputEnumerator@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IEnumerator<T> Item
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public HaveInputEnumerator@DebugTypeProxy(HaveInputEnumerator obj)
				{
					_obj = obj;
				}
			}

			[SpecialName]
			internal class HaveInnerEnumerator@DebugTypeProxy
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IEnumerator<T> Item1
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item1;
					}
				}

				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				[CompilerGenerated]
				[DebuggerNonUserCode]
				public IAsyncEnumerator<U> Item2
				{
					[CompilerGenerated]
					[DebuggerNonUserCode]
					get
					{
						return _obj.item2;
					}
				}

				[CompilerGenerated]
				[DebuggerNonUserCode]
				public HaveInnerEnumerator@DebugTypeProxy(HaveInnerEnumerator obj)
				{
					_obj = obj;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal int Tag
			{
				[DebuggerNonUserCode]
				get;
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsNotStarted
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 0;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsHaveInputEnumerator
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 1;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsHaveInnerEnumerator
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 2;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal static CollectSeqState<T, U> Finished
			{
				[CompilationMapping(/*Could not decode attribute arguments.*/)]
				get
				{
					return _unique_Finished;
				}
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			[DebuggerBrowsable(DebuggerBrowsableState.Never)]
			internal bool IsFinished
			{
				[CompilerGenerated]
				[DebuggerNonUserCode]
				get
				{
					return Tag == 3;
				}
			}

			static CollectSeqState()
			{
				_unique_Finished = new CollectSeqState<T, U>(3);
			}

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal CollectSeqState(int _tag)
			{
				this._tag = _tag;
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static CollectSeqState<T, U> NewNotStarted(IEnumerable<T> item)
			{
				return new NotStarted(item);
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static CollectSeqState<T, U> NewHaveInputEnumerator(IEnumerator<T> item)
			{
				return new HaveInputEnumerator(item);
			}

			[CompilationMapping(/*Could not decode attribute arguments.*/)]
			internal static CollectSeqState<T, U> NewHaveInnerEnumerator(IEnumerator<T> item1, IAsyncEnumerator<U> item2)
			{
				return new HaveInnerEnumerator(item1, item2);
			}

			[SpecialName]
			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal object __DebugDisplay()
			{
				return ((FSharpFunc<CollectSeqState<CollectSeqState<T, U>, string>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<CollectSeqState<T, U>, string>>((PrintfFormat<FSharpFunc<CollectSeqState<T, U>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<CollectSeqState<FSharpFunc<CollectSeqState<T, U>, string>, Unit>, string>, Unit, string, string, string>("%+0.8A"))).Invoke((CollectSeqState<CollectSeqState<T, U>, string>)(object)this);
			}

			[CompilerGenerated]
			public override string ToString()
			{
				return ((FSharpFunc<CollectSeqState<CollectSeqState<T, U>, string>, string>)(object)ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<CollectSeqState<T, U>, string>>((PrintfFormat<FSharpFunc<CollectSeqState<T, U>, string>, Unit, string, string>)(object)new PrintfFormat<FSharpFunc<CollectSeqState<FSharpFunc<CollectSeqState<T, U>, string>, Unit>, string>, Unit, string, string, CollectSeqState<FSharpFunc<CollectSeqState<T, U>, string>, Unit>>("%+A"))).Invoke((CollectSeqState<CollectSeqState<T, U>, string>)(object)this);
			}

			[CompilerGenerated]
			public virtual sealed int GetHashCode(IEqualityComparer comp)
			{
				if (this != null)
				{
					int num = 0;
					switch (Tag)
					{
					default:
						return _tag;
					case 0:
					{
						NotStarted notStarted = (NotStarted)this;
						num = 0;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IEnumerable<T>>(comp, notStarted.item) + ((num << 6) + (num >> 2)));
					}
					case 1:
					{
						HaveInputEnumerator haveInputEnumerator = (HaveInputEnumerator)this;
						num = 1;
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IEnumerator<T>>(comp, haveInputEnumerator.item) + ((num << 6) + (num >> 2)));
					}
					case 2:
					{
						HaveInnerEnumerator haveInnerEnumerator = (HaveInnerEnumerator)this;
						num = 2;
						num = -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IAsyncEnumerator<U>>(comp, haveInnerEnumerator.item2) + ((num << 6) + (num >> 2)));
						return -1640531527 + (HashCompare.GenericHashWithComparerIntrinsic<IEnumerator<T>>(comp, haveInnerEnumerator.item1) + ((num << 6) + (num >> 2)));
					}
					}
				}
				return 0;
			}

			[CompilerGenerated]
			public sealed override int GetHashCode()
			{
				return GetHashCode(LanguagePrimitives.GenericEqualityComparer);
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(object obj, IEqualityComparer comp)
			{
				if (this != null)
				{
					if (obj is CollectSeqState<T, U> collectSeqState)
					{
						int tag = _tag;
						int tag2 = collectSeqState._tag;
						if (tag == tag2)
						{
							switch (Tag)
							{
							default:
								return true;
							case 0:
							{
								NotStarted notStarted = (NotStarted)this;
								NotStarted notStarted2 = (NotStarted)collectSeqState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IEnumerable<T>>(comp, notStarted.item, notStarted2.item);
							}
							case 1:
							{
								HaveInputEnumerator haveInputEnumerator = (HaveInputEnumerator)this;
								HaveInputEnumerator haveInputEnumerator2 = (HaveInputEnumerator)collectSeqState;
								return HashCompare.GenericEqualityWithComparerIntrinsic<IEnumerator<T>>(comp, haveInputEnumerator.item, haveInputEnumerator2.item);
							}
							case 2:
							{
								HaveInnerEnumerator haveInnerEnumerator = (HaveInnerEnumerator)this;
								HaveInnerEnumerator haveInnerEnumerator2 = (HaveInnerEnumerator)collectSeqState;
								if (HashCompare.GenericEqualityWithComparerIntrinsic<IEnumerator<T>>(comp, haveInnerEnumerator.item1, haveInnerEnumerator2.item1))
								{
									return HashCompare.GenericEqualityWithComparerIntrinsic<IAsyncEnumerator<U>>(comp, haveInnerEnumerator.item2, haveInnerEnumerator2.item2);
								}
								return false;
							}
							}
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public virtual sealed bool Equals(CollectSeqState<T, U> obj)
			{
				if (this != null)
				{
					if (obj != null)
					{
						int tag = _tag;
						int tag2 = obj._tag;
						if (tag == tag2)
						{
							switch (Tag)
							{
							default:
								return true;
							case 0:
							{
								NotStarted notStarted = (NotStarted)this;
								NotStarted notStarted2 = (NotStarted)obj;
								return HashCompare.GenericEqualityERIntrinsic<IEnumerable<T>>(notStarted.item, notStarted2.item);
							}
							case 1:
							{
								HaveInputEnumerator haveInputEnumerator = (HaveInputEnumerator)this;
								HaveInputEnumerator haveInputEnumerator2 = (HaveInputEnumerator)obj;
								return HashCompare.GenericEqualityERIntrinsic<IEnumerator<T>>(haveInputEnumerator.item, haveInputEnumerator2.item);
							}
							case 2:
							{
								HaveInnerEnumerator haveInnerEnumerator = (HaveInnerEnumerator)this;
								HaveInnerEnumerator haveInnerEnumerator2 = (HaveInnerEnumerator)obj;
								if (HashCompare.GenericEqualityERIntrinsic<IEnumerator<T>>(haveInnerEnumerator.item1, haveInnerEnumerator2.item1))
								{
									return HashCompare.GenericEqualityERIntrinsic<IAsyncEnumerator<U>>(haveInnerEnumerator.item2, haveInnerEnumerator2.item2);
								}
								return false;
							}
							}
						}
						return false;
					}
					return false;
				}
				return obj == null;
			}

			[CompilerGenerated]
			public sealed override bool Equals(object obj)
			{
				if (obj is CollectSeqState<T, U> obj2)
				{
					return Equals(obj2);
				}
				return false;
			}
		}

		[Serializable]
		internal sealed class collectSeq@619-3<U, T> : FSharpFunc<FSharpOption<U>, FSharpAsync<FSharpOption<U>>>
		{
			public FSharpRef<CollectSeqState<T, U>> state;

			public IAsyncEnumerator<U> x;

			public IAsyncEnumerator<U> e2;

			public IEnumerator<T> e1;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal collectSeq@619-3(FSharpRef<CollectSeqState<T, U>> state, IAsyncEnumerator<U> x, IAsyncEnumerator<U> e2, IEnumerator<T> e1)
			{
				((FSharpFunc<FSharpOption<FSharpOption<U>>, FSharpAsync<FSharpOption<FSharpOption<U>>>>)(object)this)..ctor();
				this.state = state;
				this.x = x;
				this.e2 = e2;
				this.e1 = e1;
			}

			public override FSharpAsync<FSharpOption<U>> Invoke(FSharpOption<U> _arg1)
			{
				if (_arg1 != null)
				{
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<U>>(_arg1);
				}
				((FSharpRef<CollectSeqState<?, CollectSeqState<T, U>>>)(object)state).contents = (CollectSeqState<?, CollectSeqState<T, U>>)(object)CollectSeqState<T, U>.NewHaveInputEnumerator(e1);
				e2?.Dispose();
				return x.MoveNext();
			}
		}

		[Serializable]
		internal sealed class collectSeq@603-2<U, T> : FSharpFunc<Unit, FSharpAsync<FSharpOption<U>>>
		{
			public FSharpFunc<T, IAsyncEnumerable<U>> f;

			public FSharpRef<CollectSeqState<T, U>> state;

			public IAsyncEnumerator<U> x;

			[CompilerGenerated]
			[DebuggerNonUserCode]
			internal collectSeq@603-2(FSharpFunc<T, IAsyncEnumerable<U>> f, FSharpRef<CollectSeqState<T, U>> state, IAsyncEnumerator<U> x)
			{
				((FSharpFunc<Unit, FSharpAsync<FSharpOption<Unit>>>)(object)this)..ctor();
				this.f = f;
				this.state = state;
				this.x = x;
			}

			public override FSharpAsync<FSharpOption<U>> Invoke(Unit unitVar)
			{
				CollectSeqState<T, U> contents = ((FSharpRef<CollectSeqState<?, CollectSeqState<T, U>>>)(object)state).contents;
				switch (contents.Tag)
				{
				default:
					return ExtraTopLevelOperators.DefaultAsyncBuilder.Return<FSharpOption<U>>((FSharpOption<U>)null);
				case 0:
				{
					CollectSeqState<T, U>.NotStarted notStarted = (CollectSeqState<T, U>.NotStarted)contents;
					IEnumerable<T> item3 = notStarted.item;
					IEnumerator<T> item2 = item3.GetEnumerator();
					((FSharpRef<CollectSeqState<?, CollectSeqState<T, U>>>)(object)state).contents = (CollectSeqState<?, CollectSeqState<T, U>>)(object)CollectSeqS