| structure Bar (α : Type) where | |
| a : α | |
| b : Nat → α | |
| structure Baz (α : Type) where | |
| a : α → α | |
| c : Bool → α | |
| d : Nat | |
| set_option structureDiamondWarning false in | |
| structure Foo (α : Type) extends Bar α, Baz α -- Error: parent field type mismatch | |
| set_option structureDiamondWarning false in | |
| structure Foo (α : Type) extends Bar (α → α), Baz α | |
| #print Foo | |
| def f (x : Nat) : Foo Nat := | |
| { a := fun y => x + y | |
| b := (· + ·) | |
| c := fun _ => x | |
| d := x } | |
| #print f | |
| set_option structureDiamondWarning true in | |
| structure Foo' (α : Type) extends Bar (α → α), Baz α -- Warning: parent field duplication |