1"effect/Effectable#ChannelTypeId":
2 replacement: "Channel.TypeId"
3 note: "The public channel brand moved to its owning module; v4 uses a string TypeId rather than the v3 Symbol."
4"effect/Effectable#Class":
5 replacement: "Effectable.Class"
6 note: "Still available; replace commit() with an asEffect() method returning the Effect. The intermediate v4 override property/getter is no longer supported."
7"effect/Effectable#CommitPrimitive":
8 replacement: "new<A, E = never, R = never>() => Effect.Effect<A, E, R>"
9 note: "The named constructor interface was removed; inline the constructor type when needed."
10"effect/Effectable#CommitPrototype":
11 replacement: "Effectable.Prototype"
12 note: "Use Effectable.Prototype({ label, evaluate(fiber) { ... } }) and move the old commit body into evaluate."
13"effect/Effectable#EffectPrototype":
14 replacement: "Effectable.Prototype"
15 note: "The raw multi-branded prototype was removed; use Prototype with an explicit evaluate callback."
16"effect/Effectable#EffectTypeId":
17 replacement: "Effect.TypeId"
18 note: "The public Effect brand moved to Effect; v4 uses a string TypeId rather than the v3 Symbol."
19"effect/Effectable#SinkTypeId":
20 replacement: "Sink.isSink"
21 note: "Sink's TypeId is private in v4; use the public guard for runtime checks and public Sink constructors for values."
22"effect/Effectable#StreamTypeId":
23 replacement: "Stream.TypeId"
24 note: "The public stream brand moved to its owning module; v4 uses a string TypeId rather than the v3 Symbol."
25"effect/Effectable#StructuralClass":
26 replacement: "Effectable.Class"
27 note: "Use Class and migrate commit() to asEffect(); v4 equality is structural by default."
28"effect/Effectable#StructuralCommitPrototype":
29 replacement: "Effectable.Prototype"
30 note: "Use Prototype with evaluate; a separate structural prototype is unnecessary because v4 equality is structural by default."