@@ -38,7 +38,7 @@ for full-spectrum dependent types.
3838
3939Scala's semantics have up until now been richer than its syntax. The only singleton types which are
4040currently _ directly_ expressible are those of the form ` p.type ` where ` p ` is a path pointing to a
41- value of some subtype of ` AnyRef ` . Interally the Scala compiler also represents singleton types for
41+ value of some subtype of ` AnyRef ` . Internally the Scala compiler also represents singleton types for
4242individual values of subtypes of ` AnyVal ` , such as ` Int ` or values of type ` String ` which don't
4343correspond to paths. These types are inferred in some circumstances, notably as the types of ` final `
4444vals. Their primary purpose has been to represent compile time constants (see [ 6.24 Constant
@@ -49,13 +49,13 @@ The types here correspond to _literal_ values (ie. values which programmers can
4949terms, see [ 1.3
5050Literals] ( http://scala-lang.org/files/archive/spec/2.12/01-lexical-syntax.html#literals ) ) such as
5151` 23 ` , ` true ` or ` "foo" ` of the larger non-singleton types they inhabit (` Int ` , ` Boolean ` or ` String `
52- respectively). However, there is no suface syntax to express these types.
52+ respectively). However, there is no surface syntax to express these types.
5353
5454As we will see in the motivation section of the proposal below, singleton types corresponding to
5555literal values (henceforth _ literal types_ ) have many important uses and are already widely used in
5656many important Scala libraries. The lack of first class syntax for literal types has forced library
5757authors to use the experimental Scala macro system to provide a means to express them. Whilst this
58- has proved to be extremely successful, it has poor ergonimics (although this can typically be hidden
58+ has proved to be extremely successful, it has poor ergonomics (although this can typically be hidden
5959from library _ users_ ) and is not portable -- because Scala macros in general and the mechanisms used
6060to expose literal types to Scala programmes in particular depend on internal implementation details
6161of the current Scala compiler.
0 commit comments