import logic

context
  parameter A : Type
  definition foo : ∀ ⦃ a b : A ⦄, a = b → a = b :=
  take 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 :=
  take 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
