package Ġtry out ĊĊ Ċ interface ĠSuper Ċ Ċ class ĠSub Ġ: ĠSuper Ġ{ ĊĠĠĠ Ġfun Ġfoo (): ĠUnit Ġ= Ġprintln (" foo ") Ċ } Ċ Ċ fun Ġdemonstrate Smart Cast ( x : ĠSuper ) Ġ{ ĊĠĠĠ Ġrequire ( x Ġis ĠSub ) ĊĠĠĠ Ġx . foo () Ċ } Ċ