To handle delaborating notations that are functions that can be applied to arguments, extracts the core function application delaborator as a separate function that accepts the number of arguments to process and a delaborator to apply to the "head" of the expression. Defines `withOverApp`, which has the same interface as the combinator of the same name from std4, but it uses this core function application delaborator. Uses `withOverApp` to improve a number of application delaborators, notably projections. This means Mathlib can stop using `pp_dot` for structure fields that have function types. Incidentally fixes `getParamKinds` to specialize default values to use supplied arguments, which impacts how default arguments are delaborated. --------- Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
8 lines
143 B
Text
8 lines
143 B
Text
foo Nat : Nat
|
|
foo Nat 1 : Nat
|
|
∀ (x : Foo), x.f 1 = 0 : Prop
|
|
(let_fun f := id;
|
|
f)
|
|
1 : Nat
|
|
1 2 : Nat
|
|
(if h : True then id else id) 1 : Nat
|