type Counter { value: i32, fn read(self: ref) -> i32 { return self.value } } interface Readable { fn read(self: ref) -> i32 } fn readValue>(value: ref) -> i32 { return T.read(value) } pub fn main(world: World) -> Void raises { let counter: Counter = Counter { value: 42 } if readValue(&counter) == 42 { check world.out.write("static interface ok\n") } else { check world.out.write("static interface broke\n") } }