For example 1, `string` is not an `Ordinal` type.
>From doc,
type
SomeOrdinal = int | int8 | int16 | int32 | int64 | bool | enum | uint8 |
uint16 | uint32
For example 2, I'm not sure too but I never know that you can put type guard in type definition. For example 3, I got crash too, Windows too
