When casting an object to a reference type that it does not implement or inherit from, the cast operation should return a null reference instead of throwing an exception.
let is_iterable = [1, 2, 3, 4, 5];
let maybe_iterable = cast Iterable[int](is_iterable);
assert maybe_iterable? /\ isa Iterable[int](maybe_iterable);
let not_iterable = object();
maybe_iterable = cast Iterable[int](not_iterable);
assert !maybe_iterable?;
When casting an object to a reference type that it does not implement or inherit from, the cast operation should return a null reference instead of throwing an exception.