"[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"