type FixedVec { len: usize = 0, items: [N]T, fn init(items: [N]T) -> Self { return FixedVec { items: items } } fn get(self: ref, index: usize) -> Maybe { return std.mem.get(self.items, index) } } fn make_vec() -> FixedVec { return FixedVec.init([1, 2, 3, 4]) } pub fn main(world: World) -> Void raises { let vec: FixedVec = FixedVec.init([5, 6, 7, 8]) let from_return: FixedVec = make_vec() let first: Maybe = vec.get(0) let returned: Maybe = from_return.get(3) if first.has && first.value == 5 && returned.has && returned.value == 4 { check world.out.write("generic constructor expected ok\n") } }