I am practicing clean code and annotations in my python code. I do not get what is the functionality of defining `NewType` objects if their type is not being checked.

Example:

```
UserId = NewType('UserId', int)
some_id = UserId('Hello World!')
type(some_id)

>> str

```

I would expect some kind of warning or error indicating types do not match... or maybe:

```
UserId = NewType('UserId', int)
some_id = UserId('Hello World!')
type(some_id)

>> UserId

```

but it does not.

Thanks in advance :D