// C:\Users\Siegfried\Documents\Visual Studio 2017\Projects\ConsoleApp13\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe

.assembly extern mscorlib
{
	.publickeytoken = (
		b7 7a 5c 56 19 34 e0 89
	)
	.ver 4:0:0:0
}
.assembly extern FSharp.Core
{
	.publickeytoken = (
		b0 3f 5f 7f 11 d5 0a 3a
	)
	.ver 4:4:1:0
}
.assembly ConsoleApplication1
{
	.custom instance void [FSharp.Core]Microsoft.FSharp.Core.FSharpInterfaceDataVersionAttribute::.ctor(int32, int32, int32) = (
		01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
	)
	.custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = (
		01 00 1c 2e 4e 45 54 46 72 61 6d 65 77 6f 72 6b
		2c 56 65 72 73 69 6f 6e 3d 76 34 2e 36 2e 31 01
		00 54 0e 14 46 72 61 6d 65 77 6f 72 6b 44 69 73
		70 6c 61 79 4e 61 6d 65 14 2e 4e 45 54 20 46 72
		61 6d 65 77 6f 72 6b 20 34 2e 36 2e 31
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = (
		01 00 13 43 6f 6e 73 6f 6c 65 41 70 70 6c 69 63
		61 74 69 6f 6e 31 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = (
		01 00 00 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyConfigurationAttribute::.ctor(string) = (
		01 00 00 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = (
		01 00 00 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = (
		01 00 13 43 6f 6e 73 6f 6c 65 41 70 70 6c 69 63
		61 74 69 6f 6e 31 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = (
		01 00 12 43 6f 70 79 72 69 67 68 74 20 c2 a9 20
		20 32 30 31 37 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyTrademarkAttribute::.ctor(string) = (
		01 00 00 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyCultureAttribute::.ctor(string) = (
		01 00 00 00 00
	)
	.custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = (
		01 00 00 00 00
	)
	.custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = (
		01 00 24 65 30 36 37 34 66 66 35 2d 35 65 38 66
		2d 34 64 34 65 2d 61 38 38 66 2d 65 34 34 37 31
		39 32 34 35 34 63 37 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyVersionAttribute::.ctor(string) = (
		01 00 07 31 2e 30 2e 30 2e 30 00 00
	)
	.custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = (
		01 00 07 31 2e 30 2e 30 2e 30 00 00
	)
	.custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = (
		01 00 01 01 00 00 00 00
	)
	.hash algorithm 0x00008004 // SHA1
	.ver 1:0:0:0
}

.module ConsoleApplication1.exe
// MVID: {59F64D20-6A1F-D4CE-A745-0383204DF659}
.corflags 0x00020003 // ILOnly, Required32Bit, Preferred32Bit


.class private auto ansi '<Module>'
	extends [mscorlib]System.Object
{
} // end of class <Module>

.class public auto ansi abstract sealed Program
	extends [mscorlib]System.Object
{
	.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = (
		01 00 07 00 00 00 00 00
	)
	// Nested Types
	.class nested assembly auto auto sealed specialname serializable beforefieldinit disposable@3
		extends [mscorlib]System.Object
		implements [mscorlib]System.IDisposable
	{
		.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = (
			01 00 06 00 00 00 00 00
		)
		// Methods
		.method public specialname rtspecialname 
			instance void .ctor () cil managed 
		{
			// Method begins at RVA 0x21c8
			// Code size 9 (0x9)
			.maxstack 8

			IL_0000: ldarg.0
			IL_0001: callvirt instance void [mscorlib]System.Object::.ctor()
			IL_0006: ldarg.0
			IL_0007: pop
			IL_0008: ret
		} // end of method disposable@3::.ctor

		.method private final hidebysig newslot virtual 
			instance void 'System-IDisposable-Dispose' () cil managed 
		{
			.override method instance void [mscorlib]System.IDisposable::Dispose()
			// Method begins at RVA 0x21d4
			// Code size 1 (0x1)
			.maxstack 8

			IL_0000: ret
		} // end of method disposable@3::'System-IDisposable-Dispose'

	} // end of class disposable@3

	.class nested assembly auto auto sealed specialname serializable beforefieldinit getSeq@5
		extends class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1<int32>
	{
		.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = (
			01 00 06 00 00 00 00 00
		)
		// Fields
		.field public int32 pc
		.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = (
			01 00 00 00 00 00 00 00
		)
		.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = (
			01 00 00 00
		)
		.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = (
			01 00 00 00
		)
		.field public int32 current
		.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = (
			01 00 00 00 00 00 00 00
		)
		.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = (
			01 00 00 00
		)
		.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = (
			01 00 00 00
		)

		// Methods
		.method public specialname rtspecialname 
			instance void .ctor (
				int32 pc,
				int32 current
			) cil managed 
		{
			// Method begins at RVA 0x21d8
			// Code size 21 (0x15)
			.maxstack 8

			IL_0000: ldarg.0
			IL_0001: ldarg.1
			IL_0002: stfld int32 Program/getSeq@5::pc
			IL_0007: ldarg.0
			IL_0008: ldarg.2
			IL_0009: stfld int32 Program/getSeq@5::current
			IL_000e: ldarg.0
			IL_000f: call instance void class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1<int32>::.ctor()
			IL_0014: ret
		} // end of method getSeq@5::.ctor

		.method public strict virtual 
			instance int32 GenerateNext (
				class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>& next
			) cil managed 
		{
			// Method begins at RVA 0x21f0
			// Code size 66 (0x42)
			.maxstack 6

			IL_0000: ldarg.0
			IL_0001: ldfld int32 Program/getSeq@5::pc
			IL_0006: ldc.i4.1
			IL_0007: sub
			IL_0008: switch (IL_0017, IL_0019)

			IL_0015: br.s IL_0021

			IL_0017: br.s IL_001b

			IL_0019: br.s IL_001e

			IL_001b: nop
			IL_001c: br.s IL_0032

			IL_001e: nop
			IL_001f: br.s IL_0039

			IL_0021: nop
			IL_0022: ldarg.0
			IL_0023: ldc.i4.1
			IL_0024: stfld int32 Program/getSeq@5::pc
			IL_0029: ldarg.0
			IL_002a: ldc.i4.1
			IL_002b: stfld int32 Program/getSeq@5::current
			IL_0030: ldc.i4.1
			IL_0031: ret

			IL_0032: ldarg.0
			IL_0033: ldc.i4.2
			IL_0034: stfld int32 Program/getSeq@5::pc

			IL_0039: ldarg.0
			IL_003a: ldc.i4.0
			IL_003b: stfld int32 Program/getSeq@5::current
			IL_0040: ldc.i4.0
			IL_0041: ret
		} // end of method getSeq@5::GenerateNext

		.method public strict virtual 
			instance void Close () cil managed 
		{
			// Method begins at RVA 0x2240
			// Code size 8 (0x8)
			.maxstack 8

			IL_0000: ldarg.0
			IL_0001: ldc.i4.2
			IL_0002: stfld int32 Program/getSeq@5::pc
			IL_0007: ret
		} // end of method getSeq@5::Close

		.method public strict virtual 
			instance bool get_CheckClose () cil managed 
		{
			// Method begins at RVA 0x224c
			// Code size 45 (0x2d)
			.maxstack 8

			IL_0000: ldarg.0
			IL_0001: ldfld int32 Program/getSeq@5::pc
			IL_0006: switch (IL_0019, IL_001b, IL_001d)

			IL_0017: br.s IL_0028

			IL_0019: br.s IL_001f

			IL_001b: br.s IL_0022

			IL_001d: br.s IL_0025

			IL_001f: nop
			IL_0020: br.s IL_002b

			IL_0022: nop
			IL_0023: br.s IL_0029

			IL_0025: nop
			IL_0026: br.s IL_002b

			IL_0028: nop

			IL_0029: ldc.i4.0
			IL_002a: ret

			IL_002b: ldc.i4.0
			IL_002c: ret
		} // end of method getSeq@5::get_CheckClose

		.method public strict virtual 
			instance int32 get_LastGenerated () cil managed 
		{
			.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = (
				01 00 00 00
			)
			.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = (
				01 00 00 00
			)
			// Method begins at RVA 0x227c
			// Code size 7 (0x7)
			.maxstack 8

			IL_0000: ldarg.0
			IL_0001: ldfld int32 Program/getSeq@5::current
			IL_0006: ret
		} // end of method getSeq@5::get_LastGenerated

		.method public strict virtual 
			instance class [mscorlib]System.Collections.Generic.IEnumerator`1<int32> GetFreshEnumerator () cil managed 
		{
			.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = (
				01 00 00 00
			)
			.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = (
				01 00 00 00
			)
			// Method begins at RVA 0x2284
			// Code size 8 (0x8)
			.maxstack 8

			IL_0000: ldc.i4.0
			IL_0001: ldc.i4.0
			IL_0002: newobj instance void Program/getSeq@5::.ctor(int32, int32)
			IL_0007: ret
		} // end of method getSeq@5::GetFreshEnumerator

	} // end of class getSeq@5


	// Methods
	.method public static 
		class [mscorlib]System.IDisposable disposable () cil managed 
	{
		// Method begins at RVA 0x2050
		// Code size 6 (0x6)
		.maxstack 8

		IL_0000: newobj instance void Program/disposable@3::.ctor()
		IL_0005: ret
	} // end of method Program::disposable

	.method public static 
		class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> getSeq () cil managed 
	{
		// Method begins at RVA 0x2058
		// Code size 8 (0x8)
		.maxstack 8

		IL_0000: ldc.i4.0
		IL_0001: ldc.i4.0
		IL_0002: newobj instance void Program/getSeq@5::.ctor(int32, int32)
		IL_0007: ret
	} // end of method Program::getSeq

	.method public static 
		class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32> getList () cil managed 
	{
		// Method begins at RVA 0x2064
		// Code size 12 (0xc)
		.maxstack 8

		IL_0000: ldc.i4.1
		IL_0001: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_Empty()
		IL_0006: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0>)
		IL_000b: ret
	} // end of method Program::getList

	.method public static 
		int32[] getArray () cil managed 
	{
		// Method begins at RVA 0x2074
		// Code size 15 (0xf)
		.maxstack 8

		IL_0000: ldc.i4.1
		IL_0001: newarr [mscorlib]System.Int32
		IL_0006: dup
		IL_0007: ldc.i4.0
		IL_0008: ldc.i4.1
		IL_0009: stelem.any [mscorlib]System.Int32
		IL_000e: ret
	} // end of method Program::getArray

	.method public static 
		int32 main (
			string[] argv
		) cil managed 
	{
		.custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = (
			01 00 00 00
		)
		// Method begins at RVA 0x2084
		// Code size 270 (0x10e)
		.maxstack 4
		.entrypoint
		.locals init (
			[0] class [mscorlib]System.IDisposable,
			[1] class [mscorlib]System.IDisposable,
			[2] class [mscorlib]System.IDisposable,
			[3] class [mscorlib]System.IDisposable,
			[4] int32,
			[5] class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>,
			[6] class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>,
			[7] class [FSharp.Core]Microsoft.FSharp.Core.Unit,
			[8] int32,
			[9] class [mscorlib]System.IDisposable,
			[10] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>,
			[11] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>,
			[12] int32,
			[13] int32[],
			[14] int32,
			[15] int32,
			[16] class [mscorlib]System.IDisposable
		)

		IL_0000: call class [mscorlib]System.IDisposable Program::disposable()
		IL_0005: stloc.1
		.try
		{
			IL_0006: ldstr "Hello 1"
			IL_000b: call void [mscorlib]System.Console::WriteLine(string)
			IL_0010: call class [mscorlib]System.IDisposable Program::disposable()
			IL_0015: stloc.2
			IL_0016: leave.s IL_0032
		} // end .try
		finally
		{
			IL_0018: ldloc.1
			IL_0019: isinst [mscorlib]System.IDisposable
			IL_001e: stloc.3
			IL_001f: ldloc.3
			IL_0020: brfalse.s IL_0024

			IL_0022: br.s IL_0026

			IL_0024: br.s IL_002f

			IL_0026: ldloc.3
			IL_0027: callvirt instance void [mscorlib]System.IDisposable::Dispose()
			IL_002c: ldnull
			IL_002d: pop
			IL_002e: endfinally

			IL_002f: ldnull
			IL_0030: pop
			IL_0031: endfinally
		} // end handler

		IL_0032: ldloc.2
		IL_0033: stloc.0
		.try
		{
			IL_0034: call class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> Program::getSeq()
			IL_0039: stloc.s 5
			IL_003b: ldloc.s 5
			IL_003d: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>::GetEnumerator()
			IL_0042: stloc.s 6
			.try
			{
				// loop start (head: IL_0044)
					IL_0044: ldloc.s 6
					IL_0046: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext()
					IL_004b: brfalse.s IL_0060

					IL_004d: ldloc.s 6
					IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>::get_Current()
					IL_0054: stloc.s 8
					IL_0056: ldloc.s 8
					IL_0058: call void [mscorlib]System.Console::WriteLine(int32)
					IL_005d: nop
					IL_005e: br.s IL_0044
				// end loop

				IL_0060: ldnull
				IL_0061: stloc.s 7
				IL_0063: leave.s IL_0083
			} // end .try
			finally
			{
				IL_0065: ldloc.s 6
				IL_0067: isinst [mscorlib]System.IDisposable
				IL_006c: stloc.s 9
				IL_006e: ldloc.s 9
				IL_0070: brfalse.s IL_0074

				IL_0072: br.s IL_0076

				IL_0074: br.s IL_0080

				IL_0076: ldloc.s 9
				IL_0078: callvirt instance void [mscorlib]System.IDisposable::Dispose()
				IL_007d: ldnull
				IL_007e: pop
				IL_007f: endfinally

				IL_0080: ldnull
				IL_0081: pop
				IL_0082: endfinally
			} // end handler

			IL_0083: ldloc.s 7
			IL_0085: pop
			IL_0086: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32> Program::getList()
			IL_008b: stloc.s 10
			IL_008d: ldloc.s 10
			IL_008f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_TailOrNull()
			IL_0094: stloc.s 11
			// loop start (head: IL_0096)
				IL_0096: ldloc.s 11
				IL_0098: ldnull
				IL_0099: cgt.un
				IL_009b: brfalse.s IL_00bd

				IL_009d: ldloc.s 10
				IL_009f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_HeadOrDefault()
				IL_00a4: stloc.s 12
				IL_00a6: ldloc.s 12
				IL_00a8: call void [mscorlib]System.Console::WriteLine(int32)
				IL_00ad: ldloc.s 11
				IL_00af: stloc.s 10
				IL_00b1: ldloc.s 10
				IL_00b3: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_TailOrNull()
				IL_00b8: stloc.s 11
				IL_00ba: nop
				IL_00bb: br.s IL_0096
			// end loop

			IL_00bd: call int32[] Program::getArray()
			IL_00c2: stloc.s 13
			IL_00c4: ldc.i4.0
			IL_00c5: stloc.s 14
			IL_00c7: br.s IL_00e1
			// loop start (head: IL_00e1)
				IL_00c9: ldloc.s 13
				IL_00cb: ldloc.s 14
				IL_00cd: ldelem.any [mscorlib]System.Int32
				IL_00d2: stloc.s 15
				IL_00d4: ldloc.s 15
				IL_00d6: call void [mscorlib]System.Console::WriteLine(int32)
				IL_00db: ldloc.s 14
				IL_00dd: ldc.i4.1
				IL_00de: add
				IL_00df: stloc.s 14

				IL_00e1: ldloc.s 14
				IL_00e3: ldloc.s 13
				IL_00e5: ldlen
				IL_00e6: conv.i4
				IL_00e7: blt.s IL_00c9
			// end loop

			IL_00e9: ldc.i4.0
			IL_00ea: stloc.s 4
			IL_00ec: leave.s IL_010b
		} // end .try
		finally
		{
			IL_00ee: ldloc.0
			IL_00ef: isinst [mscorlib]System.IDisposable
			IL_00f4: stloc.s 16
			IL_00f6: ldloc.s 16
			IL_00f8: brfalse.s IL_00fc

			IL_00fa: br.s IL_00fe

			IL_00fc: br.s IL_0108

			IL_00fe: ldloc.s 16
			IL_0100: callvirt instance void [mscorlib]System.IDisposable::Dispose()
			IL_0105: ldnull
			IL_0106: pop
			IL_0107: endfinally

			IL_0108: ldnull
			IL_0109: pop
			IL_010a: endfinally
		} // end handler

		IL_010b: ldloc.s 4
		IL_010d: ret
	} // end of method Program::main

} // end of class Program

.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$Program'
	extends [mscorlib]System.Object
{
} // end of class <StartupCode$ConsoleApplication1>.$Program

.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$AssemblyInfo'
	extends [mscorlib]System.Object
{
} // end of class <StartupCode$ConsoleApplication1>.$AssemblyInfo

.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1.AssemblyAttributes'
	extends [mscorlib]System.Object
{
} // end of class <StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1.AssemblyAttributes

