[Compiler.extractClosed] size: 3 def foo._closed_0 : SourceInfo := let _x.1 := false; let _x.2 := Syntax.missing; let _x.3 := @SourceInfo.fromRef _x.2 _x.1; return _x.3 [Compiler.extractClosed] size: 1 def foo._closed_1 : String := let _x.1 := "UnhygienicMain"; return _x.1 [Compiler.extractClosed] size: 2 def foo._closed_2 : Name := let _x.1 := foo._closed_1; let _x.2 := Name.mkStr1 _x.1; return _x.2 [Compiler.extractClosed] size: 1 def foo._closed_3 : String := let _x.1 := "term_+_"; return _x.1 [Compiler.extractClosed] size: 2 def foo._closed_4 : Name := let _x.1 := foo._closed_3; let _x.2 := Name.mkStr1 _x.1; return _x.2 [Compiler.extractClosed] size: 1 def foo._closed_5 : String := let _x.1 := "a"; return _x.1 [Compiler.extractClosed] size: 2 def foo._closed_6 : Substring.Raw := let _x.1 := foo._closed_5; let _x.2 := String.toRawSubstring' _x.1; return _x.2 [Compiler.extractClosed] size: 2 def foo._closed_7 : Name := let _x.1 := foo._closed_5; let _x.2 := Name.mkStr1 _x.1; return _x.2 [Compiler.extractClosed] size: 4 def foo._closed_8 : Name := let _x.1 := 1; let _x.2 := foo._closed_7; let _x.3 := foo._closed_2; let _x.4 := addMacroScope _x.3 _x.2 _x.1; return _x.4 [Compiler.extractClosed] size: 5 def foo._closed_9 : Syntax := let _x.1 := [] ◾; let _x.2 := foo._closed_8; let _x.3 := foo._closed_6; let _x.4 := foo._closed_0; let _x.5 := Syntax.ident _x.4 _x.3 _x.2 _x.1; return _x.5 [Compiler.extractClosed] size: 1 def foo._closed_10 : String := let _x.1 := "+"; return _x.1 [Compiler.extractClosed] size: 3 def foo._closed_11 : Syntax := let _x.1 := foo._closed_10; let _x.2 := foo._closed_0; let _x.3 := Syntax.atom _x.2 _x.1; return _x.3 [Compiler.extractClosed] size: 8 def foo n : Syntax := let _x.1 := foo._closed_0; let _x.2 := foo._closed_4; let _x.3 := foo._closed_9; let _x.4 := foo._closed_11; let _x.5 := Nat.reprFast n; let _x.6 := SourceInfo.none; let _x.7 := @Syntax.mkNumLit _x.5 _x.6; let _x.8 := Syntax.node3 _x.1 _x.2 _x.3 _x.4 _x.7; return _x.8