open tactic example (f : nat) (a : nat) : true := by do f ← get_local `f, a ← get_local `a, infer_type (expr.app f a) >>= trace, constructor example (a : nat) : true := by do a ← get_local `a, clear a, infer_type a >>= trace, constructor example (a : nat) : true := by do infer_type (expr.const `eq []) >>= trace, constructor example (a : nat) : true := by do l ← return $ level.zero, infer_type (expr.const `eq [l, l]) >>= trace, constructor