in Org:RosettaCode type Animal model do end type Dog extends Animal model do end type Cat extends Animal model do end type Lab extends Dog model do end type Collie extends Dog model do end type Main var fuffy = Collie() for each generic kind in generic[Animal, Dog, Cat, Lab, Collie] writeLine("Fuffy " + when(Generic.check(kind, fuffy), "is", "is not") + " a " + Generic.name(kind)) end