This becomes even more obvious when you look at `Option[T]` \- `None` for `Option` doesn't know/care about `T` \- when you construct a `None` you don't have to provide a value for the "some" side - why would you have to provide its type? It's completely irrelevant for the none side (see <https://www.koderhq.com/tutorial/rust/enum/#option> for example).
This is actually a major annoyance with `none` in `std/options` \- you pointlessly have to provide it with a type, so if you change the return type of a function returning `Option` you have to go around and change all the none:s as well - this makes it hard to build reusable helpers for it (it's one of the key ergonomic deficiencies of `Result` as well, in terms of building reusable functionality for it)