blob: 4d32100cb857b5c2dc51247134ab77220bb97d4c [file] [edit]
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