-- structure A (α : Type) := (x : α) structure B (α : Type) := (x : α) structure S : Nat := -- error expected Type (x : Nat) structure S extends Nat → Nat := -- error expected structure (x : Nat) set_option structureDiamondWarning true in structure S' extends A Nat, A Bool := -- error field toA already declared (x : Nat) structure S extends A Nat, B Bool := -- error field `x` from `B` has already been declared (x : Nat) structure S1 := (_x : Nat) structure S2 := (x _y : Nat) structure S := (x : Nat) (x : Nat) -- error structure S extends A Nat := (x : Nat) -- error structure S extends A Nat := (x := true) -- error type mismatch structure S extends A Nat := (x : Bool := true) -- error omit type structure S := (x : Nat := true) -- error type mismatch private structure S := private mk :: (x : Nat) private structure S := protected mk :: (x : Nat) private structure S := protected (x : Nat) private structure S := mk2 :: (x : Nat) #check S #check S.mk2