section
  parameter A : Type
  definition foo : ∀ ⦃ a b : A ⦄, a = b → a = b :=
  assume a b H, H

  variable a : A
  set_option pp.implicit true
  #check foo (eq.refl a)
  #check foo
  #check foo = (λ (a b : A) (H : a = b), H)
end

#check foo = (λ (A : Type) (a b : A) (H : a = b), H)

section
  variable A : Type
  definition foo2 : ∀ ⦃ a b : A ⦄, a = b → a = b :=
  assume a b H, H

  variable a : A
  set_option pp.implicit true
  #check foo2 A (eq.refl a)
  #check foo2
  #check foo2 A = (λ (a b : A) (H : a = b), H)
end
