You make a good case that “global” variables scoped to actors might be a bit weird for folks to grasp.
One thing I’m curious about is where the would the "phase 1" error be in this example I brought up earlier, or even something a tiny bit more complex:
protocol Foo {
var foo: Int { get }
}
enum Bar: Foo {
static var staticFoo = 42
var foo: Int { Self.staticFoo }
}
actor Baz<T: Foo> {
let t: T
var foo: Int { t.foo }
}
let baz = Baz<Bar>(t: Bar())
What annotations would I need to provide to make this work?