Skip to content

Commit f9b1b78

Browse files
authored
Apply suggestions from code review
1 parent a492268 commit f9b1b78

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

content/clause-interleaving.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,11 @@ The type system and semantics naturally generalize to these new method signature
133133
### Restrictions
134134

135135
#### Type Currying
136-
Type parameters cannot be curried (having two type clauses next to each other), as this would allow partial type inference, there is a big concern it would become a recommended norm to _always_ curry type parameters.
136+
Currying type clauses enables partial type inference, as the left clause can be specified while the right one is not.
137+
As this is a very useful feature, we expect people would use it liberally, and recommending the curried form.
138+
We are uncertain about the readability of the resulting methods, we have therefore decided to not include type currying as part of this proposal.
137139

138-
Note however that, if absolutely necessary, it is still possible to curry type parameters as such: `def foo[A](using A =:= A)[B]`, since the implicit search for `A =:= A` should always succeed.
140+
Note however that, if absolutely necessary, it is still possible to curry type parameters as such: `def foo[A](using DummyImplicit)[B]`, since the implicit search for `DummyImplicit` will always succeed.
139141
This is sufficiently unwieldy that it is unlikely the above becomes the norm.
140142

141143
#### Class Signatures

0 commit comments

Comments
 (0)