3 fun foo(<bold>p: String</bold>) { (in foo(String))
4 	val v1 = <bold>p</bold>.let { value -> bar(value) } (in foo(String))
16 		fun <T, R> <bold>T</bold>.let(block: (T) -> R): R { (in let((T) -> R) on T)
17 			return block(<bold>this</bold>) (in let((T) -> R) on T)
16 				[LAMBDA PARAMETER #0] fun <T, R> T.let(<bold>block: (T) -> R</bold>): R { (in let((T) -> R) on T)
4 					[LAMBDA PARAMETER #0] val v1 = p.let <bold>{ value -> bar(value) }</bold> (in foo(String))
4 						val v1 = p.let { <bold>value</bold> -> bar(value) } (in foo(String))
4 							val v1 = p.let { value -> bar(<bold>value</bold>) } (in foo(String))
14 								fun bar(<bold>s: String</bold>) = s (in bar(String))
14 									fun bar(s: String) = <bold>s</bold> (in bar(String))
14 										<bold>fun bar(s: String)</bold> = s
4 											val v1 = p.let { value -> <bold>bar(value)</bold> } (in foo(String))
4 												val v1 = p.let <bold>{ value -> bar(value) }</bold> (in foo(String))
4 													[LAMBDA CALLS] val v1 = p.let <bold>{ value -> bar(value) }</bold> (in foo(String))
16 														[LAMBDA CALLS] fun <T, R> T.let(<bold>block: (T) -> R</bold>): R { (in let((T) -> R) on T)
17 															return <bold>block(this)</bold> (in let((T) -> R) on T)
16 																<bold>fun <T, R> T.let(block: (T) -> R): R</bold> {
4 																	val v1 = p.<bold>let { value -> bar(value) }</bold> (in foo(String))
4 																		<bold>val v1</bold> = p.let { value -> bar(value) } (in foo(String))
6 																	val v2 = p.<bold>let { it }</bold> (in foo(String))
6 																		<bold>val v2</bold> = p.let { it } (in foo(String))
8 																	val v3 = p.<bold>let {</bold> (in foo(String))
8 																		<bold>val v3</bold> = p.let { (in foo(String))
6 					[LAMBDA PARAMETER #0] val v2 = p.let <bold>{ it }</bold> (in foo(String))
6 						val v2 = p.let { <bold>it</bold> } (in foo(String))
6 							val v2 = p.let <bold>{ it }</bold> (in foo(String))
6 								[LAMBDA CALLS] val v2 = p.let <bold>{ it }</bold> (in foo(String))
16 									[LAMBDA CALLS] DUPLICATE: fun <T, R> T.let(<bold>block: (T) -> R</bold>): R { (in let((T) -> R) on T)
8 					[LAMBDA PARAMETER #0] val v3 = p.let <bold>{</bold> (in foo(String))
6 	val v2 = <bold>p</bold>.let { it } (in foo(String))
16 		DUPLICATE: fun <T, R> <bold>T</bold>.let(block: (T) -> R): R { (in let((T) -> R) on T)
8 	val v3 = <bold>p</bold>.let { (in foo(String))
16 		DUPLICATE: fun <T, R> <bold>T</bold>.let(block: (T) -> R): R { (in let((T) -> R) on T)
