Fix docs: sphinx fails on `A | B` type unions.
Even though this is valid syntax since 3.10, sphinx seems to not like
it. Switching A | None to typing.Optional[A] fixes this issue.
Further reading: https://docs.python.org/3/library/typing.html#typing.Optional
Fixes #48 (closed).