Fast and flexible runtime type-checking: Type checks are optimized by the compiler and types can be composed, re-used and turned into pro...