const cap: usize = 4

type FixedVec<T: Type, static N: usize> {
    len: usize,
    items: [N]T,
}

fn first<T: Type, static N: usize>(vec: ref<FixedVec<T, N>>) -> T {
    return vec.items[0]
}

pub fn main(world: World) -> Void raises {
    let vec: FixedVec<u8, cap> = FixedVec { len: cap, items: [1, 2, 3, 4] }
    let _value: u8 = first<u8, 8>(&vec)
    check world.out.write("bad static value mismatch\n")
}
