effect 3.1.0 → 3.1.2

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.
Files changed (278) hide show
  1. package/dist/cjs/Array.js +10 -13
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +14 -17
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +41 -46
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +13 -13
  8. package/dist/cjs/Brand.js +2 -2
  9. package/dist/cjs/Chunk.js +3 -3
  10. package/dist/cjs/Context.js +15 -20
  11. package/dist/cjs/Context.js.map +1 -1
  12. package/dist/cjs/Cron.js +3 -6
  13. package/dist/cjs/Cron.js.map +1 -1
  14. package/dist/cjs/Data.js +8 -13
  15. package/dist/cjs/Data.js.map +1 -1
  16. package/dist/cjs/Duration.js +1 -1
  17. package/dist/cjs/Effect.js +77 -9
  18. package/dist/cjs/Effect.js.map +1 -1
  19. package/dist/cjs/Either.js +117 -59
  20. package/dist/cjs/Either.js.map +1 -1
  21. package/dist/cjs/Equal.js +26 -4
  22. package/dist/cjs/Equal.js.map +1 -1
  23. package/dist/cjs/FiberHandle.js.map +1 -1
  24. package/dist/cjs/FiberMap.js.map +1 -1
  25. package/dist/cjs/FiberSet.js.map +1 -1
  26. package/dist/cjs/Function.js +2 -2
  27. package/dist/cjs/Function.js.map +1 -1
  28. package/dist/cjs/Hash.js +29 -12
  29. package/dist/cjs/Hash.js.map +1 -1
  30. package/dist/cjs/Iterable.js +10 -13
  31. package/dist/cjs/Iterable.js.map +1 -1
  32. package/dist/cjs/List.js +2 -2
  33. package/dist/cjs/Metric.js +5 -7
  34. package/dist/cjs/Metric.js.map +1 -1
  35. package/dist/cjs/Number.js +20 -21
  36. package/dist/cjs/Number.js.map +1 -1
  37. package/dist/cjs/Option.js +223 -164
  38. package/dist/cjs/Option.js.map +1 -1
  39. package/dist/cjs/Order.js +1 -2
  40. package/dist/cjs/Order.js.map +1 -1
  41. package/dist/cjs/Ordering.js +2 -2
  42. package/dist/cjs/Predicate.js +9 -12
  43. package/dist/cjs/Predicate.js.map +1 -1
  44. package/dist/cjs/Readable.js.map +1 -1
  45. package/dist/cjs/Record.js +35 -47
  46. package/dist/cjs/Record.js.map +1 -1
  47. package/dist/cjs/RegExp.js +1 -1
  48. package/dist/cjs/Request.js +2 -2
  49. package/dist/cjs/Request.js.map +1 -1
  50. package/dist/cjs/Stream.js +82 -4
  51. package/dist/cjs/Stream.js.map +1 -1
  52. package/dist/cjs/String.js +81 -111
  53. package/dist/cjs/String.js.map +1 -1
  54. package/dist/cjs/Struct.js +13 -19
  55. package/dist/cjs/Struct.js.map +1 -1
  56. package/dist/cjs/Subscribable.js.map +1 -1
  57. package/dist/cjs/Symbol.js +3 -3
  58. package/dist/cjs/TestAnnotation.js.map +1 -1
  59. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  60. package/dist/cjs/TestAnnotations.js.map +1 -1
  61. package/dist/cjs/TestClock.js.map +1 -1
  62. package/dist/cjs/TestLive.js.map +1 -1
  63. package/dist/cjs/TestSized.js.map +1 -1
  64. package/dist/cjs/Trie.js +28 -44
  65. package/dist/cjs/Trie.js.map +1 -1
  66. package/dist/cjs/Utils.js +35 -1
  67. package/dist/cjs/Utils.js.map +1 -1
  68. package/dist/cjs/internal/core-effect.js +4 -11
  69. package/dist/cjs/internal/core-effect.js.map +1 -1
  70. package/dist/cjs/internal/core.js +16 -4
  71. package/dist/cjs/internal/core.js.map +1 -1
  72. package/dist/cjs/internal/doNotation.js +23 -0
  73. package/dist/cjs/internal/doNotation.js.map +1 -0
  74. package/dist/cjs/internal/groupBy.js.map +1 -1
  75. package/dist/cjs/internal/stream.js +3 -7
  76. package/dist/cjs/internal/stream.js.map +1 -1
  77. package/dist/cjs/internal/version.js +1 -1
  78. package/dist/dts/Array.d.ts +10 -13
  79. package/dist/dts/Array.d.ts.map +1 -1
  80. package/dist/dts/BigDecimal.d.ts +14 -17
  81. package/dist/dts/BigDecimal.d.ts.map +1 -1
  82. package/dist/dts/BigInt.d.ts +41 -46
  83. package/dist/dts/BigInt.d.ts.map +1 -1
  84. package/dist/dts/Boolean.d.ts +13 -13
  85. package/dist/dts/Brand.d.ts +3 -3
  86. package/dist/dts/Chunk.d.ts +3 -3
  87. package/dist/dts/Context.d.ts +15 -20
  88. package/dist/dts/Context.d.ts.map +1 -1
  89. package/dist/dts/Cron.d.ts +3 -6
  90. package/dist/dts/Cron.d.ts.map +1 -1
  91. package/dist/dts/Data.d.ts +10 -16
  92. package/dist/dts/Data.d.ts.map +1 -1
  93. package/dist/dts/Duration.d.ts +1 -1
  94. package/dist/dts/Effect.d.ts +120 -26
  95. package/dist/dts/Effect.d.ts.map +1 -1
  96. package/dist/dts/Either.d.ts +155 -64
  97. package/dist/dts/Either.d.ts.map +1 -1
  98. package/dist/dts/Equal.d.ts.map +1 -1
  99. package/dist/dts/FiberHandle.d.ts.map +1 -1
  100. package/dist/dts/FiberMap.d.ts.map +1 -1
  101. package/dist/dts/FiberSet.d.ts.map +1 -1
  102. package/dist/dts/Function.d.ts +4 -2
  103. package/dist/dts/Function.d.ts.map +1 -1
  104. package/dist/dts/Hash.d.ts.map +1 -1
  105. package/dist/dts/HashMap.d.ts +2 -2
  106. package/dist/dts/Iterable.d.ts +10 -13
  107. package/dist/dts/Iterable.d.ts.map +1 -1
  108. package/dist/dts/List.d.ts +2 -2
  109. package/dist/dts/Metric.d.ts +5 -7
  110. package/dist/dts/Metric.d.ts.map +1 -1
  111. package/dist/dts/Number.d.ts +20 -21
  112. package/dist/dts/Number.d.ts.map +1 -1
  113. package/dist/dts/Option.d.ts +245 -155
  114. package/dist/dts/Option.d.ts.map +1 -1
  115. package/dist/dts/Order.d.ts +1 -2
  116. package/dist/dts/Order.d.ts.map +1 -1
  117. package/dist/dts/Ordering.d.ts +2 -2
  118. package/dist/dts/Predicate.d.ts +9 -12
  119. package/dist/dts/Predicate.d.ts.map +1 -1
  120. package/dist/dts/Readable.d.ts.map +1 -1
  121. package/dist/dts/Record.d.ts +35 -47
  122. package/dist/dts/Record.d.ts.map +1 -1
  123. package/dist/dts/RegExp.d.ts +1 -1
  124. package/dist/dts/Request.d.ts +2 -2
  125. package/dist/dts/Request.d.ts.map +1 -1
  126. package/dist/dts/Stream.d.ts +136 -31
  127. package/dist/dts/Stream.d.ts.map +1 -1
  128. package/dist/dts/String.d.ts +81 -111
  129. package/dist/dts/String.d.ts.map +1 -1
  130. package/dist/dts/Struct.d.ts +13 -19
  131. package/dist/dts/Struct.d.ts.map +1 -1
  132. package/dist/dts/Subscribable.d.ts.map +1 -1
  133. package/dist/dts/Symbol.d.ts +3 -3
  134. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  135. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  136. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  137. package/dist/dts/TestClock.d.ts +1 -5
  138. package/dist/dts/TestClock.d.ts.map +1 -1
  139. package/dist/dts/TestLive.d.ts.map +1 -1
  140. package/dist/dts/TestSized.d.ts.map +1 -1
  141. package/dist/dts/Trie.d.ts +28 -44
  142. package/dist/dts/Trie.d.ts.map +1 -1
  143. package/dist/dts/Types.d.ts +10 -10
  144. package/dist/dts/Utils.d.ts +19 -0
  145. package/dist/dts/Utils.d.ts.map +1 -1
  146. package/dist/dts/internal/core.d.ts.map +1 -1
  147. package/dist/dts/internal/doNotation.d.ts +2 -0
  148. package/dist/dts/internal/doNotation.d.ts.map +1 -0
  149. package/dist/dts/internal/stream.d.ts.map +1 -1
  150. package/dist/esm/Array.js +10 -13
  151. package/dist/esm/Array.js.map +1 -1
  152. package/dist/esm/BigDecimal.js +14 -17
  153. package/dist/esm/BigDecimal.js.map +1 -1
  154. package/dist/esm/BigInt.js +41 -46
  155. package/dist/esm/BigInt.js.map +1 -1
  156. package/dist/esm/Boolean.js +13 -13
  157. package/dist/esm/Brand.js +2 -2
  158. package/dist/esm/Chunk.js +3 -3
  159. package/dist/esm/Context.js +15 -20
  160. package/dist/esm/Context.js.map +1 -1
  161. package/dist/esm/Cron.js +3 -6
  162. package/dist/esm/Cron.js.map +1 -1
  163. package/dist/esm/Data.js +9 -15
  164. package/dist/esm/Data.js.map +1 -1
  165. package/dist/esm/Duration.js +1 -1
  166. package/dist/esm/Effect.js +101 -11
  167. package/dist/esm/Effect.js.map +1 -1
  168. package/dist/esm/Either.js +141 -61
  169. package/dist/esm/Either.js.map +1 -1
  170. package/dist/esm/Equal.js +26 -4
  171. package/dist/esm/Equal.js.map +1 -1
  172. package/dist/esm/FiberHandle.js.map +1 -1
  173. package/dist/esm/FiberMap.js.map +1 -1
  174. package/dist/esm/FiberSet.js.map +1 -1
  175. package/dist/esm/Function.js +2 -2
  176. package/dist/esm/Function.js.map +1 -1
  177. package/dist/esm/Hash.js +30 -13
  178. package/dist/esm/Hash.js.map +1 -1
  179. package/dist/esm/Iterable.js +10 -13
  180. package/dist/esm/Iterable.js.map +1 -1
  181. package/dist/esm/List.js +2 -2
  182. package/dist/esm/Metric.js +5 -7
  183. package/dist/esm/Metric.js.map +1 -1
  184. package/dist/esm/Number.js +20 -21
  185. package/dist/esm/Number.js.map +1 -1
  186. package/dist/esm/Option.js +249 -164
  187. package/dist/esm/Option.js.map +1 -1
  188. package/dist/esm/Order.js +1 -2
  189. package/dist/esm/Order.js.map +1 -1
  190. package/dist/esm/Ordering.js +2 -2
  191. package/dist/esm/Predicate.js +9 -12
  192. package/dist/esm/Predicate.js.map +1 -1
  193. package/dist/esm/Readable.js.map +1 -1
  194. package/dist/esm/Record.js +35 -47
  195. package/dist/esm/Record.js.map +1 -1
  196. package/dist/esm/RegExp.js +1 -1
  197. package/dist/esm/Request.js +2 -2
  198. package/dist/esm/Request.js.map +1 -1
  199. package/dist/esm/Stream.js +107 -6
  200. package/dist/esm/Stream.js.map +1 -1
  201. package/dist/esm/String.js +81 -111
  202. package/dist/esm/String.js.map +1 -1
  203. package/dist/esm/Struct.js +13 -19
  204. package/dist/esm/Struct.js.map +1 -1
  205. package/dist/esm/Subscribable.js.map +1 -1
  206. package/dist/esm/Symbol.js +3 -3
  207. package/dist/esm/TestAnnotation.js.map +1 -1
  208. package/dist/esm/TestAnnotationMap.js.map +1 -1
  209. package/dist/esm/TestAnnotations.js.map +1 -1
  210. package/dist/esm/TestClock.js.map +1 -1
  211. package/dist/esm/TestLive.js.map +1 -1
  212. package/dist/esm/TestSized.js.map +1 -1
  213. package/dist/esm/Trie.js +28 -44
  214. package/dist/esm/Trie.js.map +1 -1
  215. package/dist/esm/Utils.js +33 -0
  216. package/dist/esm/Utils.js.map +1 -1
  217. package/dist/esm/internal/core-effect.js +4 -11
  218. package/dist/esm/internal/core-effect.js.map +1 -1
  219. package/dist/esm/internal/core.js +16 -4
  220. package/dist/esm/internal/core.js.map +1 -1
  221. package/dist/esm/internal/doNotation.js +14 -0
  222. package/dist/esm/internal/doNotation.js.map +1 -0
  223. package/dist/esm/internal/groupBy.js.map +1 -1
  224. package/dist/esm/internal/stream.js +3 -7
  225. package/dist/esm/internal/stream.js.map +1 -1
  226. package/dist/esm/internal/version.js +1 -1
  227. package/package.json +1 -1
  228. package/src/Array.ts +10 -13
  229. package/src/BigDecimal.ts +14 -17
  230. package/src/BigInt.ts +41 -46
  231. package/src/Boolean.ts +13 -13
  232. package/src/Brand.ts +3 -3
  233. package/src/Chunk.ts +3 -3
  234. package/src/Context.ts +15 -20
  235. package/src/Cron.ts +3 -6
  236. package/src/Data.ts +10 -16
  237. package/src/Duration.ts +1 -1
  238. package/src/Effect.ts +122 -32
  239. package/src/Either.ts +161 -94
  240. package/src/Equal.ts +30 -9
  241. package/src/FiberHandle.ts +1 -1
  242. package/src/FiberMap.ts +1 -1
  243. package/src/FiberSet.ts +1 -1
  244. package/src/Function.ts +4 -2
  245. package/src/Hash.ts +30 -13
  246. package/src/HashMap.ts +2 -2
  247. package/src/Iterable.ts +10 -13
  248. package/src/List.ts +2 -2
  249. package/src/Metric.ts +5 -7
  250. package/src/Number.ts +20 -21
  251. package/src/Option.ts +250 -172
  252. package/src/Order.ts +1 -2
  253. package/src/Ordering.ts +2 -2
  254. package/src/Predicate.ts +9 -12
  255. package/src/Readable.ts +1 -1
  256. package/src/Record.ts +35 -47
  257. package/src/RegExp.ts +1 -1
  258. package/src/Request.ts +3 -3
  259. package/src/Stream.ts +137 -36
  260. package/src/String.ts +81 -111
  261. package/src/Struct.ts +13 -19
  262. package/src/Subscribable.ts +1 -1
  263. package/src/Symbol.ts +3 -3
  264. package/src/TestAnnotation.ts +1 -1
  265. package/src/TestAnnotationMap.ts +1 -1
  266. package/src/TestAnnotations.ts +1 -1
  267. package/src/TestClock.ts +1 -5
  268. package/src/TestLive.ts +1 -1
  269. package/src/TestSized.ts +1 -1
  270. package/src/Trie.ts +28 -44
  271. package/src/Types.ts +10 -10
  272. package/src/Utils.ts +40 -2
  273. package/src/internal/core-effect.ts +29 -45
  274. package/src/internal/core.ts +20 -4
  275. package/src/internal/doNotation.ts +77 -0
  276. package/src/internal/groupBy.ts +16 -16
  277. package/src/internal/stream.ts +34 -58
  278. package/src/internal/version.ts +1 -1
@@ -13,7 +13,7 @@ import * as Queue from "../Queue.js"
13
13
  import * as Ref from "../Ref.js"
14
14
  import type * as Stream from "../Stream.js"
15
15
  import type * as Take from "../Take.js"
16
- import type { MergeRecord, NoInfer } from "../Types.js"
16
+ import type { NoInfer } from "../Types.js"
17
17
  import * as channel from "./channel.js"
18
18
  import * as channelExecutor from "./channel/channelExecutor.js"
19
19
  import * as core from "./core-stream.js"
@@ -274,35 +274,35 @@ export const mapEffectOptions = dual<
274
274
 
275
275
  /** @internal */
276
276
  export const bindEffect = dual<
277
- <N extends string, K, A, E2, R2>(
278
- tag: Exclude<N, keyof K>,
279
- f: (_: K) => Effect.Effect<A, E2, R2>,
277
+ <N extends string, A, B, E2, R2>(
278
+ tag: Exclude<N, keyof A>,
279
+ f: (_: A) => Effect.Effect<B, E2, R2>,
280
280
  options?: {
281
281
  readonly concurrency?: number | "unbounded" | undefined
282
282
  readonly bufferSize?: number | undefined
283
283
  }
284
- ) => <E, R>(self: Stream.Stream<K, E, R>) => Stream.Stream<
285
- MergeRecord<K, { [k in N]: A }>,
284
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<
285
+ { [K in keyof A | N]: K extends keyof A ? A[K] : B },
286
286
  E | E2,
287
287
  R | R2
288
288
  >,
289
- <K, E, R, N extends string, A, E2, R2>(
290
- self: Stream.Stream<K, E, R>,
291
- tag: Exclude<N, keyof K>,
292
- f: (_: K) => Effect.Effect<A, E2, R2>,
289
+ <A, E, R, N extends string, B, E2, R2>(
290
+ self: Stream.Stream<A, E, R>,
291
+ tag: Exclude<N, keyof A>,
292
+ f: (_: A) => Effect.Effect<B, E2, R2>,
293
293
  options?: {
294
294
  readonly concurrency?: number | "unbounded" | undefined
295
295
  readonly unordered?: boolean | undefined
296
296
  }
297
297
  ) => Stream.Stream<
298
- MergeRecord<K, { [k in N]: A }>,
298
+ { [K in keyof A | N]: K extends keyof A ? A[K] : B },
299
299
  E | E2,
300
300
  R | R2
301
301
  >
302
- >((args) => typeof args[0] !== "string", <K, E, R, N extends string, A, E2, R2>(
303
- self: Stream.Stream<K, E, R>,
304
- tag: Exclude<N, keyof K>,
305
- f: (_: K) => Effect.Effect<A, E2, R2>,
302
+ >((args) => typeof args[0] !== "string", <A, E, R, N extends string, B, E2, R2>(
303
+ self: Stream.Stream<A, E, R>,
304
+ tag: Exclude<N, keyof A>,
305
+ f: (_: A) => Effect.Effect<B, E2, R2>,
306
306
  options?: {
307
307
  readonly concurrency?: number | "unbounded" | undefined
308
308
  readonly unordered?: boolean | undefined
@@ -311,7 +311,7 @@ export const bindEffect = dual<
311
311
  mapEffectOptions(self, (k) =>
312
312
  Effect.map(
313
313
  f(k),
314
- (a): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
314
+ (a) => ({ ...k, [tag]: a } as { [K in keyof A | N]: K extends keyof A ? A[K] : B })
315
315
  ), options))
316
316
 
317
317
  const mapDequeue = <A, B>(dequeue: Queue.Dequeue<A>, f: (a: A) => B): Queue.Dequeue<B> => new MapDequeue(dequeue, f)
@@ -31,12 +31,13 @@ import * as HaltStrategy from "../StreamHaltStrategy.js"
31
31
  import type * as Take from "../Take.js"
32
32
  import type * as Tracer from "../Tracer.js"
33
33
  import * as Tuple from "../Tuple.js"
34
- import type { MergeRecord, NoInfer } from "../Types.js"
34
+ import type { NoInfer } from "../Types.js"
35
35
  import * as channel from "./channel.js"
36
36
  import * as channelExecutor from "./channel/channelExecutor.js"
37
37
  import * as MergeStrategy from "./channel/mergeStrategy.js"
38
38
  import * as singleProducerAsyncInput from "./channel/singleProducerAsyncInput.js"
39
39
  import * as core from "./core-stream.js"
40
+ import * as doNotation from "./doNotation.js"
40
41
  import { RingBuffer } from "./ringBuffer.js"
41
42
  import * as _sink from "./sink.js"
42
43
  import * as DebounceState from "./stream/debounceState.js"
@@ -7921,35 +7922,35 @@ export const Do: Stream.Stream<{}> = succeed({})
7921
7922
 
7922
7923
  /** @internal */
7923
7924
  export const bind = dual<
7924
- <N extends string, K, A, E2, R2>(
7925
- tag: Exclude<N, keyof K>,
7926
- f: (_: K) => Stream.Stream<A, E2, R2>,
7925
+ <N extends string, A, B, E2, R2>(
7926
+ tag: Exclude<N, keyof A>,
7927
+ f: (_: A) => Stream.Stream<B, E2, R2>,
7927
7928
  options?: {
7928
7929
  readonly concurrency?: number | "unbounded" | undefined
7929
7930
  readonly bufferSize?: number | undefined
7930
7931
  }
7931
- ) => <E, R>(self: Stream.Stream<K, E, R>) => Stream.Stream<
7932
- MergeRecord<K, { [k in N]: A }>,
7932
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<
7933
+ { [K in keyof A | N]: K extends keyof A ? A[K] : B },
7933
7934
  E | E2,
7934
7935
  R | R2
7935
7936
  >,
7936
- <K, E, R, N extends string, A, E2, R2>(
7937
- self: Stream.Stream<K, E, R>,
7938
- tag: Exclude<N, keyof K>,
7939
- f: (_: K) => Stream.Stream<A, E2, R2>,
7937
+ <A, E, R, N extends string, B, E2, R2>(
7938
+ self: Stream.Stream<A, E, R>,
7939
+ tag: Exclude<N, keyof A>,
7940
+ f: (_: A) => Stream.Stream<B, E2, R2>,
7940
7941
  options?: {
7941
7942
  readonly concurrency?: number | "unbounded" | undefined
7942
7943
  readonly bufferSize?: number | undefined
7943
7944
  }
7944
7945
  ) => Stream.Stream<
7945
- MergeRecord<K, { [k in N]: A }>,
7946
+ { [K in keyof A | N]: K extends keyof A ? A[K] : B },
7946
7947
  E | E2,
7947
7948
  R | R2
7948
7949
  >
7949
- >((args) => typeof args[0] !== "string", <K, E, R, N extends string, A, E2, R2>(
7950
- self: Stream.Stream<K, E, R>,
7951
- tag: Exclude<N, keyof K>,
7952
- f: (_: K) => Stream.Stream<A, E2, R2>,
7950
+ >((args) => typeof args[0] !== "string", <A, E, R, N extends string, B, E2, R2>(
7951
+ self: Stream.Stream<A, E, R>,
7952
+ tag: Exclude<N, keyof A>,
7953
+ f: (_: A) => Stream.Stream<B, E2, R2>,
7953
7954
  options?: {
7954
7955
  readonly concurrency?: number | "unbounded" | undefined
7955
7956
  readonly bufferSize?: number | undefined
@@ -7958,54 +7959,29 @@ export const bind = dual<
7958
7959
  flatMap(self, (k) =>
7959
7960
  map(
7960
7961
  f(k),
7961
- (a): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
7962
+ (a) => ({ ...k, [tag]: a } as { [K in keyof A | N]: K extends keyof A ? A[K] : B })
7962
7963
  ), options))
7963
7964
 
7964
7965
  /* @internal */
7965
- export const bindTo = dual<
7966
- <N extends string>(tag: N) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<
7967
- Record<N, A>,
7968
- E,
7969
- R
7970
- >,
7971
- <A, E, R, N extends string>(
7972
- self: Stream.Stream<A, E, R>,
7973
- tag: N
7974
- ) => Stream.Stream<
7975
- Record<N, A>,
7976
- E,
7977
- R
7978
- >
7979
- >(
7980
- 2,
7981
- <A, E, R, N extends string>(self: Stream.Stream<A, E, R>, tag: N): Stream.Stream<Record<N, A>, E, R> =>
7982
- map(self, (a) => ({ [tag]: a } as Record<N, A>))
7983
- )
7966
+ export const bindTo: {
7967
+ <N extends string>(name: N): <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<{ [K in N]: A }, E, R>
7968
+ <A, E, R, N extends string>(self: Stream.Stream<A, E, R>, name: N): Stream.Stream<{ [K in N]: A }, E, R>
7969
+ } = doNotation.bindTo<Stream.StreamTypeLambda>(map)
7984
7970
 
7985
7971
  /* @internal */
7986
- export const let_ = dual<
7987
- <N extends string, K, A>(
7988
- tag: Exclude<N, keyof K>,
7989
- f: (_: K) => A
7990
- ) => <E, R>(self: Stream.Stream<K, E, R>) => Stream.Stream<
7991
- MergeRecord<K, { [k in N]: A }>,
7992
- E,
7993
- R
7994
- >,
7995
- <K, E, R, N extends string, A>(
7996
- self: Stream.Stream<K, E, R>,
7997
- tag: Exclude<N, keyof K>,
7998
- f: (_: K) => A
7999
- ) => Stream.Stream<
8000
- MergeRecord<K, { [k in N]: A }>,
8001
- E,
8002
- R
8003
- >
8004
- >(3, <K, E, R, N extends string, A>(self: Stream.Stream<K, E, R>, tag: Exclude<N, keyof K>, f: (_: K) => A) =>
8005
- map(
8006
- self,
8007
- (k): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: f(k) } as any)
8008
- ))
7972
+ export const let_: {
7973
+ <N extends string, A extends object, B>(
7974
+ name: Exclude<N, keyof A>,
7975
+ f: (a: A) => B
7976
+ ): <E, R>(
7977
+ self: Stream.Stream<A, E, R>
7978
+ ) => Stream.Stream<{ [K in N | keyof A]: K extends keyof A ? A[K] : B }, E, R>
7979
+ <A extends object, E, R, N extends string, B>(
7980
+ self: Stream.Stream<A, E, R>,
7981
+ name: Exclude<N, keyof A>,
7982
+ f: (a: A) => B
7983
+ ): Stream.Stream<{ [K in N | keyof A]: K extends keyof A ? A[K] : B }, E, R>
7984
+ } = doNotation.let_<Stream.StreamTypeLambda>(map)
8009
7985
 
8010
7986
  // Circular with Channel
8011
7987
 
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.1.0"
1
+ let moduleVersion = "3.1.2"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4