Dropped semicolon
Added rough implementation of `cast()`
Added `support-none()` and `unsupport()` and refactored `support()`