Skip to content

Commit 8173995

Browse files
committed
Some refactoring and additions
1 parent 091d93f commit 8173995

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

docs/docs/reference/overview.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ title: "Overview"
44
---
55

66
This section gives an overview of the most important language additions in Scala 3.
7-
The new features all address one or more of four major concerns:
7+
The new features address four major concerns:
88

9-
- [Consistency](consistency)
10-
- [Safety](safety)
11-
- [Ergonomics](ergonomics)
12-
- [Performance](performance)
9+
- [Consistency](consistency) - improve orthogonality and eliminate restrictions.
10+
- [Safety](safety) - enable precise domain modeling and safe refactoring.
11+
- [Ergonomics](ergonomics) - support readable and concise code.
12+
- [Performance](performance) - remove performance penalties for high-level code.
1313

1414
Scala 3 also drops a number of features that were used rarely, or where experience showed
15-
that they tended to cause problems in codebases. These are listed separately in the [Dropped Features](http://dotty.epfl.ch/docs) section.
15+
that they tended to cause problems. These are listed separately in the [Dropped Features](http://dotty.epfl.ch/docs) section.
1616

1717
Not included in this overview are changes to meta programming and generic programming. So far these have relied on a [macro system](https://docs.scala-lang.org/overviews/macros/overview.html) that had experimental status. This macro system will be replaced with a different solution. The current state of the design will be described elsewhere.
1818

@@ -42,14 +42,6 @@ The primary goal of the language constructs in this section is to make the langu
4242

4343
Traits can now have value parameters, just like classes do. This replaces the more complex [early initializer](http://dotty.epfl.ch/docs/reference/dropped/early-initializers.html) syntax.
4444

45-
- [Type lambdas](http://dotty.epfl.ch/docs/reference/type-lambdas.html) `[X] => C[X]`
46-
47-
Type lambdas were encoded previously in a roundabout way, exploiting
48-
loopholes in Scala's type system which made it Turing complete. With
49-
the removal of [unrestricted type projection](dropped/type-projection.html), the loopholes are eliminated, so the
50-
previous encodings are no longer expressible. Type lambdas in the language provide
51-
a safe and more ergonomic alternative.
52-
5345
<a name="safety"></a>
5446
## Safety
5547

@@ -107,6 +99,14 @@ The primary goal of the language constructs in this section is to make common pr
10799
Scala enums will interoperate with the host platform. They support multiversal equality
108100
out of the box, i.e. an enum can only be compared to values of the same enum type.
109101

102+
- [Type lambdas](http://dotty.epfl.ch/docs/reference/type-lambdas.html) `[X] => C[X]`
103+
104+
Type lambdas were encoded previously in a roundabout way, exploiting
105+
loopholes in Scala's type system which made it Turing complete. With
106+
the removal of [unrestricted type projection](dropped/type-projection.html), the loopholes are eliminated, so the
107+
previous encodings are no longer expressible. Type lambdas in the language provide
108+
a safe and more ergonomic alternative.
109+
110110
- Extension clauses `extension StringOps for String { ... }`
111111

112112
([Pending](https://github.com/lampepfl/dotty/pull/4114)) Extension clauses allow to define extension methods and late implementations

0 commit comments

Comments
 (0)