def
tactic.interactive.traverse_constructor
(c n : name)
(appl_inst f α β : expr)
(args₀ : list expr)
(args₁ : list (bool × expr))
(rec_call : list expr) :
For a sum type inductive foo (α : Type) | foo1 : list α → ℕ → foo | ...
traverse_constructor `foo1 `foo appl_inst f `α `β [`(x : list α), `(y : ℕ)]
synthesizes foo1 <$> traverse f x <*> pure y.
derive the traverse
definition of a traversable
instance