effect 3.14.3 → 3.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/Effect.ts CHANGED
@@ -28377,6 +28377,225 @@ export namespace fn {
28377
28377
  i: (_: H, ...args: Args) => Eff
28378
28378
  ): (...args: Args) => Eff
28379
28379
  }
28380
+
28381
+ /**
28382
+ * @since 3.11.0
28383
+ * @category Models
28384
+ */
28385
+ export type Untraced = {
28386
+ <Eff extends YieldWrap<Effect<any, any, any>>, AEff, Args extends Array<any>>(
28387
+ body: (...args: Args) => Generator<Eff, AEff, never>
28388
+ ): (...args: Args) => Effect<
28389
+ AEff,
28390
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28391
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28392
+ >
28393
+ <Eff extends YieldWrap<Effect<any, any, any>>, AEff, Args extends Array<any>, A>(
28394
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28395
+ a: (
28396
+ _: Effect<
28397
+ AEff,
28398
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28399
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28400
+ >,
28401
+ ...args: Args
28402
+ ) => A
28403
+ ): (...args: Args) => A
28404
+ <Eff extends YieldWrap<Effect<any, any, any>>, AEff, Args extends Array<any>, A, B>(
28405
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28406
+ a: (
28407
+ _: Effect<
28408
+ AEff,
28409
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28410
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28411
+ >,
28412
+ ...args: Args
28413
+ ) => A,
28414
+ b: (_: A, ...args: Args) => B
28415
+ ): (...args: Args) => B
28416
+ <
28417
+ Eff extends YieldWrap<Effect<any, any, any>>,
28418
+ AEff,
28419
+ Args extends Array<any>,
28420
+ A,
28421
+ B,
28422
+ C
28423
+ >(
28424
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28425
+ a: (
28426
+ _: Effect<
28427
+ AEff,
28428
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28429
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28430
+ >,
28431
+ ...args: Args
28432
+ ) => A,
28433
+ b: (_: A, ...args: Args) => B,
28434
+ c: (_: B, ...args: Args) => C
28435
+ ): (...args: Args) => C
28436
+ <
28437
+ Eff extends YieldWrap<Effect<any, any, any>>,
28438
+ AEff,
28439
+ Args extends Array<any>,
28440
+ A,
28441
+ B,
28442
+ C,
28443
+ D
28444
+ >(
28445
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28446
+ a: (
28447
+ _: Effect<
28448
+ AEff,
28449
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28450
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28451
+ >,
28452
+ ...args: Args
28453
+ ) => A,
28454
+ b: (_: A, ...args: Args) => B,
28455
+ c: (_: B, ...args: Args) => C,
28456
+ d: (_: C, ...args: Args) => D
28457
+ ): (...args: Args) => D
28458
+ <
28459
+ Eff extends YieldWrap<Effect<any, any, any>>,
28460
+ AEff,
28461
+ Args extends Array<any>,
28462
+ A,
28463
+ B,
28464
+ C,
28465
+ D,
28466
+ E
28467
+ >(
28468
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28469
+ a: (
28470
+ _: Effect<
28471
+ AEff,
28472
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28473
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28474
+ >,
28475
+ ...args: Args
28476
+ ) => A,
28477
+ b: (_: A, ...args: Args) => B,
28478
+ c: (_: B, ...args: Args) => C,
28479
+ d: (_: C, ...args: Args) => D,
28480
+ e: (_: D, ...args: Args) => E
28481
+ ): (...args: Args) => E
28482
+ <
28483
+ Eff extends YieldWrap<Effect<any, any, any>>,
28484
+ AEff,
28485
+ Args extends Array<any>,
28486
+ A,
28487
+ B,
28488
+ C,
28489
+ D,
28490
+ E,
28491
+ F
28492
+ >(
28493
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28494
+ a: (
28495
+ _: Effect<
28496
+ AEff,
28497
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28498
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28499
+ >,
28500
+ ...args: Args
28501
+ ) => A,
28502
+ b: (_: A, ...args: Args) => B,
28503
+ c: (_: B, ...args: Args) => C,
28504
+ d: (_: C, ...args: Args) => D,
28505
+ e: (_: D, ...args: Args) => E,
28506
+ f: (_: E, ...args: Args) => F
28507
+ ): (...args: Args) => F
28508
+ <
28509
+ Eff extends YieldWrap<Effect<any, any, any>>,
28510
+ AEff,
28511
+ Args extends Array<any>,
28512
+ A,
28513
+ B,
28514
+ C,
28515
+ D,
28516
+ E,
28517
+ F,
28518
+ G
28519
+ >(
28520
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28521
+ a: (
28522
+ _: Effect<
28523
+ AEff,
28524
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28525
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28526
+ >,
28527
+ ...args: Args
28528
+ ) => A,
28529
+ b: (_: A, ...args: Args) => B,
28530
+ c: (_: B, ...args: Args) => C,
28531
+ d: (_: C, ...args: Args) => D,
28532
+ e: (_: D, ...args: Args) => E,
28533
+ f: (_: E, ...args: Args) => F,
28534
+ g: (_: F, ...args: Args) => G
28535
+ ): (...args: Args) => G
28536
+ <
28537
+ Eff extends YieldWrap<Effect<any, any, any>>,
28538
+ AEff,
28539
+ Args extends Array<any>,
28540
+ A,
28541
+ B,
28542
+ C,
28543
+ D,
28544
+ E,
28545
+ F,
28546
+ G,
28547
+ H
28548
+ >(
28549
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28550
+ a: (
28551
+ _: Effect<
28552
+ AEff,
28553
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28554
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28555
+ >,
28556
+ ...args: Args
28557
+ ) => A,
28558
+ b: (_: A, ...args: Args) => B,
28559
+ c: (_: B, ...args: Args) => C,
28560
+ d: (_: C, ...args: Args) => D,
28561
+ e: (_: D, ...args: Args) => E,
28562
+ f: (_: E, ...args: Args) => F,
28563
+ g: (_: F, ...args: Args) => G,
28564
+ h: (_: G, ...args: Args) => H
28565
+ ): (...args: Args) => H
28566
+ <
28567
+ Eff extends YieldWrap<Effect<any, any, any>>,
28568
+ AEff,
28569
+ Args extends Array<any>,
28570
+ A,
28571
+ B,
28572
+ C,
28573
+ D,
28574
+ E,
28575
+ F,
28576
+ G,
28577
+ H,
28578
+ I
28579
+ >(
28580
+ body: (...args: Args) => Generator<Eff, AEff, never>,
28581
+ a: (
28582
+ _: Effect<
28583
+ AEff,
28584
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
28585
+ [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
28586
+ >,
28587
+ ...args: Args
28588
+ ) => A,
28589
+ b: (_: A, ...args: Args) => B,
28590
+ c: (_: B, ...args: Args) => C,
28591
+ d: (_: C, ...args: Args) => D,
28592
+ e: (_: D, ...args: Args) => E,
28593
+ f: (_: E, ...args: Args) => F,
28594
+ g: (_: F, ...args: Args) => G,
28595
+ h: (_: G, ...args: Args) => H,
28596
+ i: (_: H, ...args: Args) => I
28597
+ ): (...args: Args) => I
28598
+ }
28380
28599
  }
28381
28600
 
28382
28601
  /**
@@ -28639,4 +28858,4 @@ function fnApply(options: {
28639
28858
  * @since 3.12.0
28640
28859
  * @category Tracing
28641
28860
  */
28642
- export const fnUntraced: fn.Gen = core.fnUntraced
28861
+ export const fnUntraced: fn.Untraced = core.fnUntraced
package/src/Equal.ts CHANGED
@@ -53,6 +53,8 @@ function compareBoth(self: unknown, that: unknown): boolean {
53
53
  }
54
54
  } else if (self instanceof Date && that instanceof Date) {
55
55
  return self.toISOString() === that.toISOString()
56
+ } else if (self instanceof URL && that instanceof URL) {
57
+ return self.href === that.href
56
58
  }
57
59
  }
58
60
  if (structuralRegionState.enabled) {
package/src/Hash.ts CHANGED
@@ -54,6 +54,8 @@ export const hash: <A>(self: A) => number = <A>(self: A) => {
54
54
  return string("null")
55
55
  } else if (self instanceof Date) {
56
56
  return hash(self.toISOString())
57
+ } else if (self instanceof URL) {
58
+ return hash(self.href)
57
59
  } else if (isHash(self)) {
58
60
  return self[symbol]()
59
61
  } else {