Is adding this validation is needed?
`io` object type depends on `TCPServer`'s argument so adding this validation prevents `Handler` reusability.
Reusing `Handler` is very rare case but I think there is no reason to block such case.