Skip to content

Commit 66876a2

Browse files
committed
adress reviewers comments; fix class hierarchy
2 parents c2dc1bc + 1730e1b commit 66876a2

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

blog/_posts/2016-02-03-essence-of-scala.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ types `T` to terms `t` and formal _evaluation rules_ that describe how a
5656
program is evaluated. The main difference between the Wadlerfest paper
5757
and the prior technical report lies in the form of these evaluation
5858
rules. The technical report uses a "big step" semantics, i.e. it
59-
defines an abstract of interpreter that explains how terms map to
59+
defines an interpreter that explains how terms map to
6060
values. The Wadlerfest paper uses a more common "small step"
6161
semantics, i.e. it explains evaluation as step-wise rewritings of
6262
terms. To do this, it needs to restrict terms to be in [A-normal
@@ -78,8 +78,8 @@ you can have conflicting definitions. For instance you might have an abstract
7878
type declaration in a base class with two conflicting aliases in subclasses:
7979

8080
trait Base { type A }
81-
trait Sub1 { type A = String }
82-
trait Sub2 { type A = Int }
81+
trait Sub1 extends Base { type A = String }
82+
trait Sub2 extends Base { type A = Int }
8383

8484
Now, if you combine `Sub1` and `Sub2` in one class, you get a conflict, since the type `A` is supposed to be equal to both `String` and `Int`. If you do
8585
not detect the conflict and assume the equalities at face value you
@@ -92,7 +92,7 @@ Now, the problem is that one cannot always detect these
9292
inconsistencies, at least not by a local analysis that does not need
9393
to look at the whole program. What's worse, once you have an
9494
inconsistent set of definitions you can use these definitions to
95-
"prove" their own consistency - much like an mathematical theory that
95+
"prove" their own consistency - much like a mathematical theory that
9696
assumes `true = false` can "prove" every proposition including its own
9797
correctness.
9898

@@ -149,5 +149,5 @@ project are important.
149149
This lets us put other constructs of the Scala language to the test,
150150
either to increase our confidence that they are indeed sound, or
151151
to show that they are unsound. In my next blog I will
152-
present some of the things we have discovered by that exercise.
152+
present some of the issues we have discovered by that exercise.
153153

0 commit comments

Comments
 (0)