1"effect/Duration#decode":
2 replacement: "Duration.fromInputUnsafe"
3 note: "The throwing DurationInput decoder was renamed."
4"effect/Duration#decodeUnknown":
5 replacement: "Duration.fromInput"
6 note: "The safe decoder was renamed and accepts Duration.Input, returning Option<Duration>."
7"effect/Duration#Duration":
8 replacement: "Duration.Duration"
9 note: "The model remains and now also supports negative infinity; its type-id value is private."
10"effect/Duration#DurationInput":
11 replacement: "Duration.Input"
12 note: "The input type was renamed and expanded with negative values and Temporal.Duration-like objects."
13"effect/Duration#DurationValue":
14 replacement: "Duration.DurationValue"
15 note: "The tagged value remains and adds NegativeInfinity; its object fields are no longer readonly."
16"effect/Duration#formatIso":
17 replacement: "none"
18 note: "ISO 8601 duration formatting was removed from the v4 Duration module. The v4 source and migration guides expose no direct replacement; retain a local formatter when this wire format is required."
19"effect/Duration#fromIso":
20 replacement: "none"
21 note: "ISO 8601 duration parsing was removed from the v4 Duration module. The v4 source and migration guides expose no direct replacement; use a dedicated ISO parser and pass the resulting parts to Duration.fromInput."
22"effect/Duration#greaterThan":
23 replacement: "Duration.isGreaterThan"
24 note: "The comparison was renamed with the is prefix."
25"effect/Duration#greaterThanOrEqualTo":
26 replacement: "Duration.isGreaterThanOrEqualTo"
27 note: "The comparison was renamed with the is prefix."
28"effect/Duration#lessThan":
29 replacement: "Duration.isLessThan"
30 note: "The comparison was renamed with the is prefix."
31"effect/Duration#lessThanOrEqualTo":
32 replacement: "Duration.isLessThanOrEqualTo"
33 note: "The comparison was renamed with the is prefix."
34"effect/Duration#matchWith":
35 replacement: "Duration.matchPair"
36 note: "The two-duration matcher was renamed."
37"effect/Duration#TypeId":
38 replacement: "none"
39 note: "The Duration type id is private in v4. Use Duration.isDuration to narrow unknown values."
40"effect/Duration#unsafeDivide":
41 replacement: "Duration.divideUnsafe"
42 note: "The unsafe prefix moved to the end of the division function name."
43"effect/Duration#unsafeFormatIso":
44 replacement: "none"
45 note: "ISO 8601 duration formatting was removed from v4. The v4 Duration exports and migration guides contain no direct unsafe formatter; retain a local formatter if required."
46"effect/Duration#unsafeToNanos":
47 replacement: "Duration.toNanosUnsafe"
48 note: "The unsafe prefix moved to the end of the nanosecond conversion name."