FooBar 라는 sealed 인터베이스가 있고


랜덤으로 Foo나 Bar를 리턴하는 함수에서 객체를 받아와서

Foo 면 foo 를 실행, 아니면 bar 를 실행하는데

우리는 Foo 가 아니면 Bar 란걸 알지만 컴파일러는 알지 못함

이럴때 쓸 수 있는게 contract 문법으로 컴파일러한테 정보를 제공할 수 있음 ㅇㅅㅇ


Foo 면 true 를 Bar 면 false 를 리턴하도록 하면


스마트 캐스팅이 알아서 잘 적용된다 ㅇㅅㅇ

이거 히트네,,,