inductive Vector' (α : Type u) : Nat → Type u | nil : Vector' α 0 | cons : α → Vector' α n → Vector' α (n+1) deriving Repr infix:67 " :: " => Vector'.cons def tabulate (f : Fin n → α) : Vector' α n := match n with | 0 => Vector'.nil | n+1 => f 0 :: tabulate (f ∘ Fin.succ) #eval tabulate fun i : Fin 5 => i