"[n.1, n.2, n.3, m1, m2, m3]" "[(m1, ?n α), (m2, ?n α x), (m3, ?n α x)]" fun (α : Type) (x : ?n α) (y : Nat -> (?n α x)) => f (?n α x) x "[n.1, n.2, n.3, m1, m2, m3]" "[(m1, ?n α), (m2, ?n α x)]" "[n.2]" fun (α : Type) (x : ?n α) (y : Nat -> (?n α x)) => f (?n α x) y assigning ?m1 and ?n fun (α : Type) (x : Nat) (y : Nat -> (?n α x)) => f x y