`]: ../special-types-and-traits.md#boxt
[`Pin`]: ../special-types-and-traits.md#pinp
[`Rc`]: ../special-types-and-traits.md#rct
+[`Sized`]: ../special-types-and-traits.md#sized
[traits]: traits.md
[type aliases]: type-aliases.md
[inherent implementations]: implementations.md#inherent-implementations
diff --git a/src/special-types-and-traits.md b/src/special-types-and-traits.md
index 810be0005..6d054aae2 100644
--- a/src/special-types-and-traits.md
+++ b/src/special-types-and-traits.md
@@ -134,10 +134,10 @@ UnwindSafe>` is a valid type.
## `Sized`
-The [`Sized`] trait indicates that the size of this type is known at
-compile-time; that is, it's not a [dynamically sized type]. [Type parameters]
-are `Sized` by default. `Sized` is always implemented automatically by the
-compiler, not by [implementation items].
+The [`Sized`] trait indicates that the size of this type is known at compile-time; that is, it's not a [dynamically sized type].
+[Type parameters] are `Sized` by default, as are [associated types].
+`Sized` is always implemented automatically by the compiler, not by [implementation items].
+These implicit `Sized` bounds may be relaxed by using the special `?Sized` bound.
[`Arc`]: ../std/sync/struct.Arc.html
[`Box`]: ../std/boxed/struct.Box.html
@@ -160,6 +160,7 @@ compiler, not by [implementation items].
[`Unpin`]: ../std/marker/trait.Unpin.html
[Arrays]: types/array.md
+[associated types]: items/associated-items.md#associated-types
[call expressions]: expressions/call-expr.md
[deref coercions]: type-coercions.md#coercion-types
[dereference operator]: expressions/operator-expr.md#the-dereference-operator
diff --git a/src/trait-bounds.md b/src/trait-bounds.md
index 0bd6e9b1d..fd70c1182 100644
--- a/src/trait-bounds.md
+++ b/src/trait-bounds.md
@@ -77,9 +77,8 @@ Trait and lifetime bounds are also used to name [trait objects].
## `?Sized`
-`?` is only used to declare that the [`Sized`] trait may not be
-implemented for a type parameter or associated type. `?Sized` may
-not be used as a bound for other types.
+`?` is only used to relax the implicit [`Sized`] trait bound for [type parameters] or [associated types].
+`?Sized` may not be used as a bound for other types.
## Lifetime bounds
@@ -149,4 +148,5 @@ fn call_on_ref_zero(f: F) where F: for<'a> Fn(&'a i32) {
[generic]: items/generics.md
[Trait]: items/traits.md#trait-bounds
[trait objects]: types/trait-object.md
+[type parameters]: types/parameters.md
[where clause]: items/generics.md#where-clauses