prelude constant A : Type.{1}
constant f : A → A → A
constant g : A → A → A
precedence `+` : 65
infixl + := f
infixl + := g
constant a : A
constant b : A
#print raw a+b -- + is overloaded
#check fun (h : A → A → A)
          (infixl + := h), -- Like local declarations, local notation "shadows" global one.
      a+b
