type Bytes { items: [N]u8, fn first(self: ref) -> u8 { return self.items[0] } } interface First { fn first(self: ref) -> u8 } fn readFirst, static N: usize>(value: ref) -> u8 { return T.first(value) } pub fn main(world: World) -> Void raises { let bytes: Bytes<4> = Bytes { items: [9, 8, 7, 6] } if readFirst, 4>(&bytes) == 9 { check world.out.write("static interface static param ok\n") } }