@@ -36,7 +36,7 @@ the type of `foo` the type `bar` expects
36
36
37
37
We handle this sort of subtyping by taking the variables that are
38
38
bound in the supertype and replacing them with
39
- [ universally quantified] ( ../appendix/background.html #quantified )
39
+ [ universally quantified] ( ../../ appendix/background.md #quantified )
40
40
representatives, denoted like ` !1 ` here. We call these regions "placeholder
41
41
regions" – they represent, basically, "some unknown region".
42
42
@@ -53,7 +53,7 @@ what we wanted.
53
53
54
54
So let's work through what happens next. To check if two functions are
55
55
subtypes, we check if their arguments have the desired relationship
56
- (fn arguments are [ contravariant] ( ../appendix/background.html #variance ) , so
56
+ (fn arguments are [ contravariant] ( ../../ appendix/background.md #variance ) , so
57
57
we swap the left and right here):
58
58
59
59
``` text
@@ -92,7 +92,7 @@ Here, the root universe would consist of the lifetimes `'static` and
92
92
the same concept to types, in which case the types ` Foo ` and ` T ` would
93
93
be in the root universe (along with other global types, like ` i32 ` ).
94
94
Basically, the root universe contains all the names that
95
- [ appear free] ( ../appendix/background.html #free-vs-bound ) in the body of ` bar ` .
95
+ [ appear free] ( ../../ appendix/background.md #free-vs-bound ) in the body of ` bar ` .
96
96
97
97
Now let's extend ` bar ` a bit by adding a variable ` x ` :
98
98
0 commit comments