Skip to content

Commit bb3080d

Browse files
authored
Add an example with proper interleaved clauses
1 parent aa63555 commit bb3080d

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

content/polymorphic-eta-expansion.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,12 @@ extension (x: Int)
221221
val extv1_1: [B] => B => B = extf1(4) // extf1(4) becomes [B'] => (y: B') => extf1(4)[B'](y)
222222

223223
val extv1_3: Int => [B] => B => B = extf1 // extf1 becomes (i: Int) => [B'] => (y: B') => extf1(i)[B'](y)
224+
225+
// See https://docs.scala-lang.org/sips/clause-interleaving.html
226+
def interleaved(key: Key)[V >: key.Value](default: V): V = ???
227+
val someKey: Key = ???
228+
val interleaved_1: [A >: someKey.Value] => A => A = interleaved(someKey)
229+
// interleaved(someKey) becomes [A' >: someKey.Value] => (default: A') => interleaved(someKey)[A'](default)
224230
~~~
225231

226232
#### Implicit parameters:

0 commit comments

Comments
 (0)