From a84c71afec2d0925ef480f58a39de232fa141fb6 Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Fri, 15 Mar 2024 11:59:57 -0400 Subject: [PATCH 1/6] Don't blow stack when traversing deep sequentials * Sequential expressions are more likely than most other expression kinds to be deeply nested, e.g., in very large list or array expressions. Since `traverseSynExpr` is not tail-recursive, we must treat them specially to avoid blowing the stack. --- src/Compiler/Service/ServiceParseTreeWalk.fs | 32 +++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/Compiler/Service/ServiceParseTreeWalk.fs b/src/Compiler/Service/ServiceParseTreeWalk.fs index d0c0132dc6b..6b0e83500cb 100644 --- a/src/Compiler/Service/ServiceParseTreeWalk.fs +++ b/src/Compiler/Service/ServiceParseTreeWalk.fs @@ -379,6 +379,30 @@ module SyntaxTraversal = and traverseSynExpr origPath (expr: SynExpr) = let pick = pick expr.Range + /// Sequential expressions are more likely than + /// most other expression kinds to be deeply nested, + /// e.g., in very large list or array expressions. + /// We treat them specially to avoid blowing the stack. + let rec traverseSequentials path expr = + seq { + match expr with + | SynExpr.Sequential(expr1 = expr1; expr2 = expr2) -> + // It's a sequential expression. + // Visit it, but make defaultTraverse do nothing, + // since we're going to traverse its descendants ourselves. + yield dive expr expr.Range (fun expr -> visitor.VisitExpr(path, traverseSynExpr path, (fun _ -> None), expr)) + + // Now traverse its descendants. + let path = SyntaxNode.SynExpr expr :: path + yield dive expr1 expr1.Range (traverseSynExpr path) + yield! traverseSequentials path expr2 + + | _ -> + // It's not a sequential expression. + // Traverse it normally. + yield dive expr expr.Range (traverseSynExpr path) + } + let defaultTraverse e = let path = SyntaxNode.SynExpr e :: origPath let traverseSynExpr = traverseSynExpr path @@ -680,11 +704,17 @@ module SyntaxTraversal = ] |> pick expr + | SynExpr.Sequential(expr1 = synExpr1; expr2 = synExpr2) -> + [ + dive synExpr1 synExpr1.Range traverseSynExpr + yield! traverseSequentials path synExpr2 + ] + |> pick expr + | SynExpr.Set(targetExpr = synExpr1; rhsExpr = synExpr2) | SynExpr.DotSet(targetExpr = synExpr1; rhsExpr = synExpr2) | SynExpr.TryFinally(tryExpr = synExpr1; finallyExpr = synExpr2) | SynExpr.SequentialOrImplicitYield(expr1 = synExpr1; expr2 = synExpr2) - | SynExpr.Sequential(expr1 = synExpr1; expr2 = synExpr2) | SynExpr.While(whileExpr = synExpr1; doExpr = synExpr2) | SynExpr.WhileBang(whileExpr = synExpr1; doExpr = synExpr2) | SynExpr.DotIndexedGet(objectExpr = synExpr1; indexArgs = synExpr2) From 52c606afc5f3b4ef22cd7ccc05e47e24f4aad4d5 Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Fri, 15 Mar 2024 12:30:49 -0400 Subject: [PATCH 2/6] Update release notes --- docs/release-notes/.FSharp.Compiler.Service/8.0.300.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md index 83b2c864908..b706da136a1 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md +++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md @@ -1,5 +1,6 @@ ### Fixed +* Don't blow the stack when traversing deeply nested sequential expressions. ([PR #16882](https://github.com/dotnet/fsharp/pull/16882)) * Fix wrong range start of INTERP_STRING_END. ([PR #16774](https://github.com/dotnet/fsharp/pull/16774), [PR #16785](https://github.com/dotnet/fsharp/pull/16785)) * Fix missing warning for recursive calls in list comprehensions. ([PR #16652](https://github.com/dotnet/fsharp/pull/16652)) * Code generated files with > 64K methods and generated symbols crash when loaded. Use infered sequence points for debugging. ([Issue #16399](https://github.com/dotnet/fsharp/issues/16399), [#PR 16514](https://github.com/dotnet/fsharp/pull/16514)) From f048ffef3e10d45b8364a46f1f0a5c8c4af8ec0d Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Fri, 15 Mar 2024 13:56:49 -0400 Subject: [PATCH 3/6] Only when actually nested --- src/Compiler/Service/ServiceParseTreeWalk.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Service/ServiceParseTreeWalk.fs b/src/Compiler/Service/ServiceParseTreeWalk.fs index 6b0e83500cb..042599eb41a 100644 --- a/src/Compiler/Service/ServiceParseTreeWalk.fs +++ b/src/Compiler/Service/ServiceParseTreeWalk.fs @@ -386,8 +386,8 @@ module SyntaxTraversal = let rec traverseSequentials path expr = seq { match expr with - | SynExpr.Sequential(expr1 = expr1; expr2 = expr2) -> - // It's a sequential expression. + | SynExpr.Sequential(expr1 = expr1; expr2 = SynExpr.Sequential _ as expr2) -> + // It's a nested sequential expression. // Visit it, but make defaultTraverse do nothing, // since we're going to traverse its descendants ourselves. yield dive expr expr.Range (fun expr -> visitor.VisitExpr(path, traverseSynExpr path, (fun _ -> None), expr)) From bca774866be08054c5d73efdfb49f9c9e65424aa Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Fri, 15 Mar 2024 16:59:32 -0400 Subject: [PATCH 4/6] Update comments --- src/Compiler/Service/ServiceParseTreeWalk.fs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Service/ServiceParseTreeWalk.fs b/src/Compiler/Service/ServiceParseTreeWalk.fs index 042599eb41a..9031392178d 100644 --- a/src/Compiler/Service/ServiceParseTreeWalk.fs +++ b/src/Compiler/Service/ServiceParseTreeWalk.fs @@ -382,7 +382,8 @@ module SyntaxTraversal = /// Sequential expressions are more likely than /// most other expression kinds to be deeply nested, /// e.g., in very large list or array expressions. - /// We treat them specially to avoid blowing the stack. + /// We treat them specially to avoid blowing the stack, + /// since traverseSynExpr itself is not tail-recursive. let rec traverseSequentials path expr = seq { match expr with @@ -398,7 +399,7 @@ module SyntaxTraversal = yield! traverseSequentials path expr2 | _ -> - // It's not a sequential expression. + // It's not a nested sequential expression. // Traverse it normally. yield dive expr expr.Range (traverseSynExpr path) } From b4d7c0ad27f5c5820d8e69687698a2611b50e4ea Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Tue, 19 Mar 2024 15:26:04 -0400 Subject: [PATCH 5/6] Only alloc seq when needed --- src/Compiler/Service/ServiceParseTreeWalk.fs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Compiler/Service/ServiceParseTreeWalk.fs b/src/Compiler/Service/ServiceParseTreeWalk.fs index 9031392178d..c395c9422d2 100644 --- a/src/Compiler/Service/ServiceParseTreeWalk.fs +++ b/src/Compiler/Service/ServiceParseTreeWalk.fs @@ -705,13 +705,15 @@ module SyntaxTraversal = ] |> pick expr - | SynExpr.Sequential(expr1 = synExpr1; expr2 = synExpr2) -> + // Nested sequentials. + | SynExpr.Sequential(expr1 = synExpr1; expr2 = synExpr2 & SynExpr.Sequential _) -> [ dive synExpr1 synExpr1.Range traverseSynExpr yield! traverseSequentials path synExpr2 ] |> pick expr + | SynExpr.Sequential(expr1 = synExpr1; expr2 = synExpr2) | SynExpr.Set(targetExpr = synExpr1; rhsExpr = synExpr2) | SynExpr.DotSet(targetExpr = synExpr1; rhsExpr = synExpr2) | SynExpr.TryFinally(tryExpr = synExpr1; finallyExpr = synExpr2) From beef3a642a983b670ffbe785f0c61f9ec6235f87 Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Tue, 19 Mar 2024 16:07:07 -0400 Subject: [PATCH 6/6] Add very big array test for AST traversal --- .../FSharp.Compiler.UnitTests.fsproj | 1 + ...edInputModuleTests.VeryBigArrayExprTest.fs | 5024 +++++++++++++++++ .../ParsedInputModuleTests.fs | 2 +- 3 files changed, 5026 insertions(+), 1 deletion(-) create mode 100644 tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.VeryBigArrayExprTest.fs diff --git a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj index dd3e21cea91..4b6e9a9fe4a 100644 --- a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj +++ b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj @@ -75,6 +75,7 @@ + diff --git a/tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.VeryBigArrayExprTest.fs b/tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.VeryBigArrayExprTest.fs new file mode 100644 index 00000000000..084417882d1 --- /dev/null +++ b/tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.VeryBigArrayExprTest.fs @@ -0,0 +1,5024 @@ +module Tests.Service.ParsedInputModule.VeryBigArrayExprTest + +#if !DEBUG +open FSharp.Compiler.Service.Tests.Common +open FSharp.Compiler.Syntax +open Xunit + +[] +let ``fold doesn't blow the stack when traversing very big arrays`` () = + let source = """ +module M + +let _ = + [| + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + (fun () -> 2 + 2) + |] +""" + + let parseTree = parseSourceCode ("C:\\test.fs", source) + + do + ((), parseTree) + ||> ParsedInput.fold (fun () path node -> ignore (path, node)) +#endif diff --git a/tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.fs b/tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.fs index 635c000f4af..ead03f14402 100644 --- a/tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.fs +++ b/tests/FSharp.Compiler.UnitTests/ParsedInputModuleTests.fs @@ -1,4 +1,4 @@ -module Tests.Service.ParsedInputModuleTests +module Tests.Service.ParsedInputModule.Tests open FSharp.Compiler.Service.Tests.Common open FSharp.Compiler.Syntax