structure A where x : Nat y : Nat namespace Foo scoped instance : ToString A where toString a := s!"A.mk {a.x} {a.y}" end Foo #eval toString { x := 10, y := 20 : A } -- Error: failed to synthesize `ToString A` section Sec1 open Foo #eval toString { x := 10, y := 20 : A } -- works end Sec1 -- scoped instance `ToString A` is not available anymore #eval toString { x := 10, y := 20 : A } -- Error section Sec2 local instance : ToString A where toString a := s!"\{ x := {a.x}, y := {a.y} }" #eval toString { x := 10, y := 20 : A } -- works, using local instance end Sec2 -- local instance `ToString A` is not available anymore #eval toString { x := 10, y := 20 : A } -- Error open Foo #eval toString { x := 10, y := 20 : A } -- works