effect 4.0.0-beta.102 → 4.0.0-beta.103

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 (1451) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +381 -407
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +433 -756
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +200 -325
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +207 -267
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +107 -135
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +146 -188
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +64 -84
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.js.map +1 -1
  18. package/dist/Cache.d.ts +405 -254
  19. package/dist/Cache.d.ts.map +1 -1
  20. package/dist/Cache.js +166 -101
  21. package/dist/Cache.js.map +1 -1
  22. package/dist/Cause.d.ts +167 -277
  23. package/dist/Cause.d.ts.map +1 -1
  24. package/dist/Cause.js +122 -176
  25. package/dist/Cause.js.map +1 -1
  26. package/dist/Channel.d.ts +729 -768
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +514 -440
  29. package/dist/Channel.js.map +1 -1
  30. package/dist/ChannelSchema.d.ts +1 -1
  31. package/dist/ChannelSchema.d.ts.map +1 -1
  32. package/dist/ChannelSchema.js.map +1 -1
  33. package/dist/Chunk.d.ts +834 -1173
  34. package/dist/Chunk.d.ts.map +1 -1
  35. package/dist/Chunk.js +326 -439
  36. package/dist/Chunk.js.map +1 -1
  37. package/dist/Clock.d.ts +180 -49
  38. package/dist/Clock.d.ts.map +1 -1
  39. package/dist/Clock.js +96 -31
  40. package/dist/Clock.js.map +1 -1
  41. package/dist/Combiner.d.ts +20 -33
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +18 -30
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +225 -173
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +336 -265
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +194 -68
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +115 -80
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +233 -33
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +232 -32
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +151 -274
  58. package/dist/Context.d.ts.map +1 -1
  59. package/dist/Context.js +171 -214
  60. package/dist/Context.js.map +1 -1
  61. package/dist/Cron.d.ts +68 -77
  62. package/dist/Cron.d.ts.map +1 -1
  63. package/dist/Cron.js +57 -66
  64. package/dist/Cron.js.map +1 -1
  65. package/dist/Crypto.d.ts +13 -15
  66. package/dist/Crypto.d.ts.map +1 -1
  67. package/dist/Crypto.js +9 -10
  68. package/dist/Crypto.js.map +1 -1
  69. package/dist/Data.d.ts +60 -80
  70. package/dist/Data.d.ts.map +1 -1
  71. package/dist/Data.js +16 -23
  72. package/dist/Data.js.map +1 -1
  73. package/dist/DateTime.d.ts +562 -660
  74. package/dist/DateTime.d.ts.map +1 -1
  75. package/dist/DateTime.js +307 -362
  76. package/dist/DateTime.js.map +1 -1
  77. package/dist/Deferred.d.ts +253 -256
  78. package/dist/Deferred.d.ts.map +1 -1
  79. package/dist/Deferred.js +104 -96
  80. package/dist/Deferred.js.map +1 -1
  81. package/dist/Duration.d.ts +216 -308
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +132 -186
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2841 -3247
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1322 -1546
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.js.map +1 -1
  90. package/dist/Encoding.d.ts +22 -40
  91. package/dist/Encoding.d.ts.map +1 -1
  92. package/dist/Encoding.js +22 -40
  93. package/dist/Encoding.js.map +1 -1
  94. package/dist/Equal.d.ts +33 -37
  95. package/dist/Equal.d.ts.map +1 -1
  96. package/dist/Equal.js +29 -21
  97. package/dist/Equal.js.map +1 -1
  98. package/dist/Equivalence.d.ts +103 -105
  99. package/dist/Equivalence.d.ts.map +1 -1
  100. package/dist/Equivalence.js +77 -79
  101. package/dist/Equivalence.js.map +1 -1
  102. package/dist/ErrorReporter.d.ts +51 -27
  103. package/dist/ErrorReporter.d.ts.map +1 -1
  104. package/dist/ErrorReporter.js +50 -26
  105. package/dist/ErrorReporter.js.map +1 -1
  106. package/dist/ExecutionPlan.d.ts +13 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +7 -28
  109. package/dist/ExecutionPlan.js.map +1 -1
  110. package/dist/Exit.d.ts +116 -192
  111. package/dist/Exit.d.ts.map +1 -1
  112. package/dist/Exit.js +82 -130
  113. package/dist/Exit.js.map +1 -1
  114. package/dist/Fiber.d.ts +82 -146
  115. package/dist/Fiber.d.ts.map +1 -1
  116. package/dist/Fiber.js +48 -87
  117. package/dist/Fiber.js.map +1 -1
  118. package/dist/FiberHandle.d.ts +152 -105
  119. package/dist/FiberHandle.d.ts.map +1 -1
  120. package/dist/FiberHandle.js +106 -73
  121. package/dist/FiberHandle.js.map +1 -1
  122. package/dist/FiberMap.d.ts +213 -168
  123. package/dist/FiberMap.d.ts.map +1 -1
  124. package/dist/FiberMap.js +114 -89
  125. package/dist/FiberMap.js.map +1 -1
  126. package/dist/FiberSet.d.ts +123 -81
  127. package/dist/FiberSet.d.ts.map +1 -1
  128. package/dist/FiberSet.js +85 -59
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +153 -264
  131. package/dist/FileSystem.d.ts.map +1 -1
  132. package/dist/FileSystem.js +42 -147
  133. package/dist/FileSystem.js.map +1 -1
  134. package/dist/Filter.d.ts +61 -33
  135. package/dist/Filter.d.ts.map +1 -1
  136. package/dist/Filter.js +26 -15
  137. package/dist/Filter.js.map +1 -1
  138. package/dist/Formatter.d.ts +25 -33
  139. package/dist/Formatter.d.ts.map +1 -1
  140. package/dist/Formatter.js +48 -49
  141. package/dist/Formatter.js.map +1 -1
  142. package/dist/Function.d.ts +76 -145
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +40 -57
  145. package/dist/Function.js.map +1 -1
  146. package/dist/Graph.d.ts +360 -714
  147. package/dist/Graph.d.ts.map +1 -1
  148. package/dist/Graph.js +168 -297
  149. package/dist/Graph.js.map +1 -1
  150. package/dist/HKT.d.ts +12 -6
  151. package/dist/HKT.d.ts.map +1 -1
  152. package/dist/Hash.d.ts +47 -83
  153. package/dist/Hash.d.ts.map +1 -1
  154. package/dist/Hash.js +46 -68
  155. package/dist/Hash.js.map +1 -1
  156. package/dist/HashMap.d.ts +319 -411
  157. package/dist/HashMap.d.ts.map +1 -1
  158. package/dist/HashMap.js +122 -166
  159. package/dist/HashMap.js.map +1 -1
  160. package/dist/HashRing.d.ts.map +1 -1
  161. package/dist/HashRing.js +1 -0
  162. package/dist/HashRing.js.map +1 -1
  163. package/dist/HashSet.d.ts +177 -284
  164. package/dist/HashSet.d.ts.map +1 -1
  165. package/dist/HashSet.js +68 -109
  166. package/dist/HashSet.js.map +1 -1
  167. package/dist/Inspectable.d.ts +12 -12
  168. package/dist/Inspectable.js +8 -8
  169. package/dist/Inspectable.js.map +1 -1
  170. package/dist/Iterable.d.ts +620 -786
  171. package/dist/Iterable.d.ts.map +1 -1
  172. package/dist/Iterable.js +228 -306
  173. package/dist/Iterable.js.map +1 -1
  174. package/dist/JsonPatch.d.ts +11 -13
  175. package/dist/JsonPatch.d.ts.map +1 -1
  176. package/dist/JsonPatch.js +44 -102
  177. package/dist/JsonPatch.js.map +1 -1
  178. package/dist/JsonPointer.d.ts +8 -8
  179. package/dist/JsonPointer.js +8 -8
  180. package/dist/JsonPointer.js.map +1 -1
  181. package/dist/JsonSchema.d.ts +98 -44
  182. package/dist/JsonSchema.d.ts.map +1 -1
  183. package/dist/JsonSchema.js +297 -234
  184. package/dist/JsonSchema.js.map +1 -1
  185. package/dist/Latch.d.ts +23 -35
  186. package/dist/Latch.d.ts.map +1 -1
  187. package/dist/Latch.js +16 -28
  188. package/dist/Latch.js.map +1 -1
  189. package/dist/Layer.d.ts +359 -260
  190. package/dist/Layer.d.ts.map +1 -1
  191. package/dist/Layer.js +195 -175
  192. package/dist/Layer.js.map +1 -1
  193. package/dist/LayerMap.d.ts +42 -29
  194. package/dist/LayerMap.d.ts.map +1 -1
  195. package/dist/LayerMap.js +31 -21
  196. package/dist/LayerMap.js.map +1 -1
  197. package/dist/LayerRef.d.ts +6 -2
  198. package/dist/LayerRef.d.ts.map +1 -1
  199. package/dist/LayerRef.js +6 -2
  200. package/dist/LayerRef.js.map +1 -1
  201. package/dist/LogLevel.d.ts +114 -214
  202. package/dist/LogLevel.d.ts.map +1 -1
  203. package/dist/LogLevel.js +41 -76
  204. package/dist/LogLevel.js.map +1 -1
  205. package/dist/Logger.d.ts +218 -467
  206. package/dist/Logger.d.ts.map +1 -1
  207. package/dist/Logger.js +204 -450
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +7 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +7 -5
  212. package/dist/ManagedRuntime.js.map +1 -1
  213. package/dist/Match.d.ts +217 -252
  214. package/dist/Match.d.ts.map +1 -1
  215. package/dist/Match.js +150 -183
  216. package/dist/Match.js.map +1 -1
  217. package/dist/Metric.d.ts +442 -993
  218. package/dist/Metric.d.ts.map +1 -1
  219. package/dist/Metric.js +198 -642
  220. package/dist/Metric.js.map +1 -1
  221. package/dist/MutableHashMap.d.ts +144 -173
  222. package/dist/MutableHashMap.d.ts.map +1 -1
  223. package/dist/MutableHashMap.js +68 -79
  224. package/dist/MutableHashMap.js.map +1 -1
  225. package/dist/MutableHashSet.d.ts +84 -89
  226. package/dist/MutableHashSet.d.ts.map +1 -1
  227. package/dist/MutableHashSet.js +44 -47
  228. package/dist/MutableHashSet.js.map +1 -1
  229. package/dist/MutableList.d.ts +71 -370
  230. package/dist/MutableList.d.ts.map +1 -1
  231. package/dist/MutableList.js +59 -284
  232. package/dist/MutableList.js.map +1 -1
  233. package/dist/MutableRef.d.ts +420 -243
  234. package/dist/MutableRef.d.ts.map +1 -1
  235. package/dist/MutableRef.js +209 -120
  236. package/dist/MutableRef.js.map +1 -1
  237. package/dist/Newtype.d.ts +21 -14
  238. package/dist/Newtype.d.ts.map +1 -1
  239. package/dist/Newtype.js +15 -13
  240. package/dist/Newtype.js.map +1 -1
  241. package/dist/NonEmptyIterable.d.ts +7 -137
  242. package/dist/NonEmptyIterable.d.ts.map +1 -1
  243. package/dist/NonEmptyIterable.js +5 -93
  244. package/dist/NonEmptyIterable.js.map +1 -1
  245. package/dist/Number.d.ts +196 -233
  246. package/dist/Number.d.ts.map +1 -1
  247. package/dist/Number.js +90 -109
  248. package/dist/Number.js.map +1 -1
  249. package/dist/Optic.d.ts +97 -189
  250. package/dist/Optic.d.ts.map +1 -1
  251. package/dist/Optic.js +187 -290
  252. package/dist/Optic.js.map +1 -1
  253. package/dist/Option.d.ts +447 -812
  254. package/dist/Option.d.ts.map +1 -1
  255. package/dist/Option.js +211 -392
  256. package/dist/Option.js.map +1 -1
  257. package/dist/Order.d.ts +109 -109
  258. package/dist/Order.js +91 -91
  259. package/dist/Order.js.map +1 -1
  260. package/dist/Ordering.d.ts +20 -23
  261. package/dist/Ordering.d.ts.map +1 -1
  262. package/dist/Ordering.js +8 -9
  263. package/dist/Ordering.js.map +1 -1
  264. package/dist/PartitionedSemaphore.js.map +1 -1
  265. package/dist/Path.d.ts +38 -41
  266. package/dist/Path.d.ts.map +1 -1
  267. package/dist/Path.js +3 -4
  268. package/dist/Path.js.map +1 -1
  269. package/dist/Pipeable.d.ts +6 -5
  270. package/dist/Pipeable.d.ts.map +1 -1
  271. package/dist/Pipeable.js +2 -2
  272. package/dist/Pipeable.js.map +1 -1
  273. package/dist/PlatformError.d.ts +4 -4
  274. package/dist/PlatformError.js +3 -3
  275. package/dist/PlatformError.js.map +1 -1
  276. package/dist/Pool.d.ts +4 -2
  277. package/dist/Pool.d.ts.map +1 -1
  278. package/dist/Pool.js +4 -2
  279. package/dist/Pool.js.map +1 -1
  280. package/dist/Predicate.d.ts +200 -181
  281. package/dist/Predicate.d.ts.map +1 -1
  282. package/dist/Predicate.js +100 -108
  283. package/dist/Predicate.js.map +1 -1
  284. package/dist/PrimaryKey.d.ts +7 -7
  285. package/dist/PrimaryKey.js +5 -5
  286. package/dist/PrimaryKey.js.map +1 -1
  287. package/dist/PubSub.d.ts +425 -494
  288. package/dist/PubSub.d.ts.map +1 -1
  289. package/dist/PubSub.js +373 -362
  290. package/dist/PubSub.js.map +1 -1
  291. package/dist/Pull.d.ts +24 -18
  292. package/dist/Pull.d.ts.map +1 -1
  293. package/dist/Pull.js +11 -9
  294. package/dist/Pull.js.map +1 -1
  295. package/dist/Queue.d.ts +200 -159
  296. package/dist/Queue.d.ts.map +1 -1
  297. package/dist/Queue.js +162 -132
  298. package/dist/Queue.js.map +1 -1
  299. package/dist/Random.d.ts +49 -74
  300. package/dist/Random.d.ts.map +1 -1
  301. package/dist/Random.js +35 -54
  302. package/dist/Random.js.map +1 -1
  303. package/dist/RcMap.d.ts +121 -63
  304. package/dist/RcMap.d.ts.map +1 -1
  305. package/dist/RcMap.js +42 -21
  306. package/dist/RcMap.js.map +1 -1
  307. package/dist/RcRef.d.ts +24 -13
  308. package/dist/RcRef.d.ts.map +1 -1
  309. package/dist/RcRef.js +15 -9
  310. package/dist/RcRef.js.map +1 -1
  311. package/dist/Record.d.ts +291 -488
  312. package/dist/Record.d.ts.map +1 -1
  313. package/dist/Record.js +111 -202
  314. package/dist/Record.js.map +1 -1
  315. package/dist/Redactable.d.ts +6 -2
  316. package/dist/Redactable.d.ts.map +1 -1
  317. package/dist/Redactable.js +7 -2
  318. package/dist/Redactable.js.map +1 -1
  319. package/dist/Redacted.d.ts +25 -25
  320. package/dist/Redacted.d.ts.map +1 -1
  321. package/dist/Redacted.js +19 -20
  322. package/dist/Redacted.js.map +1 -1
  323. package/dist/Reducer.d.ts +8 -15
  324. package/dist/Reducer.d.ts.map +1 -1
  325. package/dist/Reducer.js +6 -12
  326. package/dist/Reducer.js.map +1 -1
  327. package/dist/Ref.d.ts +95 -165
  328. package/dist/Ref.d.ts.map +1 -1
  329. package/dist/Ref.js +75 -122
  330. package/dist/Ref.js.map +1 -1
  331. package/dist/References.d.ts +102 -168
  332. package/dist/References.d.ts.map +1 -1
  333. package/dist/References.js +102 -168
  334. package/dist/References.js.map +1 -1
  335. package/dist/RegExp.d.ts +10 -14
  336. package/dist/RegExp.d.ts.map +1 -1
  337. package/dist/RegExp.js +10 -14
  338. package/dist/RegExp.js.map +1 -1
  339. package/dist/Request.d.ts +31 -21
  340. package/dist/Request.d.ts.map +1 -1
  341. package/dist/Request.js +16 -13
  342. package/dist/Request.js.map +1 -1
  343. package/dist/RequestResolver.d.ts +201 -90
  344. package/dist/RequestResolver.d.ts.map +1 -1
  345. package/dist/RequestResolver.js +87 -41
  346. package/dist/RequestResolver.js.map +1 -1
  347. package/dist/Resource.js.map +1 -1
  348. package/dist/Result.d.ts +302 -470
  349. package/dist/Result.d.ts.map +1 -1
  350. package/dist/Result.js +133 -217
  351. package/dist/Result.js.map +1 -1
  352. package/dist/Runtime.d.ts +50 -75
  353. package/dist/Runtime.d.ts.map +1 -1
  354. package/dist/Runtime.js +39 -60
  355. package/dist/Runtime.js.map +1 -1
  356. package/dist/Schedule.d.ts +290 -1636
  357. package/dist/Schedule.d.ts.map +1 -1
  358. package/dist/Schedule.js +162 -803
  359. package/dist/Schedule.js.map +1 -1
  360. package/dist/Scheduler.d.ts +5 -5
  361. package/dist/Scheduler.d.ts.map +1 -1
  362. package/dist/Scheduler.js +18 -6
  363. package/dist/Scheduler.js.map +1 -1
  364. package/dist/Schema.d.ts +644 -642
  365. package/dist/Schema.d.ts.map +1 -1
  366. package/dist/Schema.js +491 -527
  367. package/dist/Schema.js.map +1 -1
  368. package/dist/SchemaAST.d.ts +27 -50
  369. package/dist/SchemaAST.d.ts.map +1 -1
  370. package/dist/SchemaAST.js +366 -279
  371. package/dist/SchemaAST.js.map +1 -1
  372. package/dist/SchemaError.d.ts +7 -6
  373. package/dist/SchemaError.d.ts.map +1 -1
  374. package/dist/SchemaError.js +7 -6
  375. package/dist/SchemaError.js.map +1 -1
  376. package/dist/SchemaGetter.d.ts +217 -174
  377. package/dist/SchemaGetter.d.ts.map +1 -1
  378. package/dist/SchemaGetter.js +218 -185
  379. package/dist/SchemaGetter.js.map +1 -1
  380. package/dist/SchemaIssue.d.ts +62 -190
  381. package/dist/SchemaIssue.d.ts.map +1 -1
  382. package/dist/SchemaIssue.js +73 -265
  383. package/dist/SchemaIssue.js.map +1 -1
  384. package/dist/SchemaParser.d.ts +2 -2
  385. package/dist/SchemaParser.d.ts.map +1 -1
  386. package/dist/SchemaParser.js +123 -75
  387. package/dist/SchemaParser.js.map +1 -1
  388. package/dist/SchemaRepresentation.d.ts +22 -36
  389. package/dist/SchemaRepresentation.d.ts.map +1 -1
  390. package/dist/SchemaRepresentation.js +20 -26
  391. package/dist/SchemaRepresentation.js.map +1 -1
  392. package/dist/SchemaTransformation.d.ts +114 -74
  393. package/dist/SchemaTransformation.d.ts.map +1 -1
  394. package/dist/SchemaTransformation.js +120 -85
  395. package/dist/SchemaTransformation.js.map +1 -1
  396. package/dist/Scope.d.ts +123 -151
  397. package/dist/Scope.d.ts.map +1 -1
  398. package/dist/Scope.js +72 -92
  399. package/dist/Scope.js.map +1 -1
  400. package/dist/ScopedCache.js.map +1 -1
  401. package/dist/ScopedRef.d.ts +3 -3
  402. package/dist/ScopedRef.js +2 -2
  403. package/dist/ScopedRef.js.map +1 -1
  404. package/dist/Semaphore.d.ts +96 -10
  405. package/dist/Semaphore.d.ts.map +1 -1
  406. package/dist/Semaphore.js +78 -39
  407. package/dist/Semaphore.js.map +1 -1
  408. package/dist/Sink.d.ts +117 -107
  409. package/dist/Sink.d.ts.map +1 -1
  410. package/dist/Sink.js +107 -100
  411. package/dist/Sink.js.map +1 -1
  412. package/dist/Stdio.d.ts +1 -1
  413. package/dist/Stdio.js.map +1 -1
  414. package/dist/Stream.d.ts +2415 -2949
  415. package/dist/Stream.d.ts.map +1 -1
  416. package/dist/Stream.js +1078 -1381
  417. package/dist/Stream.js.map +1 -1
  418. package/dist/String.d.ts +262 -308
  419. package/dist/String.d.ts.map +1 -1
  420. package/dist/String.js +184 -215
  421. package/dist/String.js.map +1 -1
  422. package/dist/Struct.d.ts +109 -114
  423. package/dist/Struct.d.ts.map +1 -1
  424. package/dist/Struct.js +41 -50
  425. package/dist/Struct.js.map +1 -1
  426. package/dist/SubscriptionRef.d.ts +282 -250
  427. package/dist/SubscriptionRef.d.ts.map +1 -1
  428. package/dist/SubscriptionRef.js +104 -92
  429. package/dist/SubscriptionRef.js.map +1 -1
  430. package/dist/Symbol.d.ts +3 -3
  431. package/dist/Symbol.js +3 -3
  432. package/dist/Symbol.js.map +1 -1
  433. package/dist/SynchronizedRef.js.map +1 -1
  434. package/dist/Take.js.map +1 -1
  435. package/dist/Terminal.d.ts +2 -2
  436. package/dist/Terminal.js +1 -1
  437. package/dist/Terminal.js.map +1 -1
  438. package/dist/Tracer.d.ts +100 -54
  439. package/dist/Tracer.d.ts.map +1 -1
  440. package/dist/Tracer.js +41 -24
  441. package/dist/Tracer.js.map +1 -1
  442. package/dist/Trie.d.ts +287 -679
  443. package/dist/Trie.d.ts.map +1 -1
  444. package/dist/Trie.js +109 -251
  445. package/dist/Trie.js.map +1 -1
  446. package/dist/Tuple.d.ts +92 -127
  447. package/dist/Tuple.d.ts.map +1 -1
  448. package/dist/Tuple.js +42 -57
  449. package/dist/Tuple.js.map +1 -1
  450. package/dist/TxChunk.d.ts +201 -121
  451. package/dist/TxChunk.d.ts.map +1 -1
  452. package/dist/TxChunk.js +85 -56
  453. package/dist/TxChunk.js.map +1 -1
  454. package/dist/TxDeferred.d.ts +62 -46
  455. package/dist/TxDeferred.d.ts.map +1 -1
  456. package/dist/TxDeferred.js +30 -22
  457. package/dist/TxDeferred.js.map +1 -1
  458. package/dist/TxHashMap.d.ts +631 -779
  459. package/dist/TxHashMap.d.ts.map +1 -1
  460. package/dist/TxHashMap.js +268 -330
  461. package/dist/TxHashMap.js.map +1 -1
  462. package/dist/TxHashSet.d.ts +297 -236
  463. package/dist/TxHashSet.d.ts.map +1 -1
  464. package/dist/TxHashSet.js +130 -100
  465. package/dist/TxHashSet.js.map +1 -1
  466. package/dist/TxPriorityQueue.d.ts +126 -95
  467. package/dist/TxPriorityQueue.d.ts.map +1 -1
  468. package/dist/TxPriorityQueue.js +74 -56
  469. package/dist/TxPriorityQueue.js.map +1 -1
  470. package/dist/TxPubSub.d.ts +101 -88
  471. package/dist/TxPubSub.d.ts.map +1 -1
  472. package/dist/TxPubSub.js +87 -66
  473. package/dist/TxPubSub.js.map +1 -1
  474. package/dist/TxQueue.d.ts +200 -180
  475. package/dist/TxQueue.d.ts.map +1 -1
  476. package/dist/TxQueue.js +160 -136
  477. package/dist/TxQueue.js.map +1 -1
  478. package/dist/TxReentrantLock.d.ts +97 -66
  479. package/dist/TxReentrantLock.d.ts.map +1 -1
  480. package/dist/TxReentrantLock.js +67 -45
  481. package/dist/TxReentrantLock.js.map +1 -1
  482. package/dist/TxRef.d.ts +51 -32
  483. package/dist/TxRef.d.ts.map +1 -1
  484. package/dist/TxRef.js +23 -15
  485. package/dist/TxRef.js.map +1 -1
  486. package/dist/TxSemaphore.d.ts +129 -95
  487. package/dist/TxSemaphore.d.ts.map +1 -1
  488. package/dist/TxSemaphore.js +85 -70
  489. package/dist/TxSemaphore.js.map +1 -1
  490. package/dist/TxSubscriptionRef.d.ts +97 -70
  491. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  492. package/dist/TxSubscriptionRef.js +44 -34
  493. package/dist/TxSubscriptionRef.js.map +1 -1
  494. package/dist/Types.d.ts +126 -67
  495. package/dist/Types.d.ts.map +1 -1
  496. package/dist/UndefinedOr.js.map +1 -1
  497. package/dist/Unify.d.ts +45 -65
  498. package/dist/Unify.d.ts.map +1 -1
  499. package/dist/Unify.js +6 -9
  500. package/dist/Unify.js.map +1 -1
  501. package/dist/Utils.d.ts +23 -16
  502. package/dist/Utils.d.ts.map +1 -1
  503. package/dist/Utils.js +3 -7
  504. package/dist/Utils.js.map +1 -1
  505. package/dist/index.js.map +1 -1
  506. package/dist/internal/array.js.map +1 -1
  507. package/dist/internal/core.js +1 -1
  508. package/dist/internal/core.js.map +1 -1
  509. package/dist/internal/dateTime.js +4 -0
  510. package/dist/internal/dateTime.js.map +1 -1
  511. package/dist/internal/doNotation.js.map +1 -1
  512. package/dist/internal/effect.js +77 -40
  513. package/dist/internal/effect.js.map +1 -1
  514. package/dist/internal/equal.js.map +1 -1
  515. package/dist/internal/errors.js.map +1 -1
  516. package/dist/internal/executionPlan.js.map +1 -1
  517. package/dist/internal/hashMap.js.map +1 -1
  518. package/dist/internal/hashSet.js.map +1 -1
  519. package/dist/internal/layer.js.map +1 -1
  520. package/dist/internal/matcher.js.map +1 -1
  521. package/dist/internal/metric.js.map +1 -1
  522. package/dist/internal/option.js.map +1 -1
  523. package/dist/internal/persistence.d.ts +2 -0
  524. package/dist/internal/persistence.d.ts.map +1 -0
  525. package/dist/internal/persistence.js +3 -0
  526. package/dist/internal/persistence.js.map +1 -0
  527. package/dist/internal/random.js.map +1 -1
  528. package/dist/internal/rcRef.js.map +1 -1
  529. package/dist/internal/record.js.map +1 -1
  530. package/dist/internal/redacted.js.map +1 -1
  531. package/dist/internal/references.js +3 -0
  532. package/dist/internal/references.js.map +1 -1
  533. package/dist/internal/request.js.map +1 -1
  534. package/dist/internal/result.js.map +1 -1
  535. package/dist/internal/schedule.js.map +1 -1
  536. package/dist/internal/schema/annotations.js.map +1 -1
  537. package/dist/internal/schema/cause.js.map +1 -1
  538. package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
  539. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  540. package/dist/internal/schema/fromRepresentation.js +8 -15
  541. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  542. package/dist/internal/schema/parser.d.ts +14 -0
  543. package/dist/internal/schema/parser.d.ts.map +1 -0
  544. package/dist/internal/schema/parser.js +13 -0
  545. package/dist/internal/schema/parser.js.map +1 -0
  546. package/dist/internal/schema/schema.js.map +1 -1
  547. package/dist/internal/schema/toArbitrary.js.map +1 -1
  548. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  549. package/dist/internal/schema/toEquivalence.js.map +1 -1
  550. package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
  551. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  552. package/dist/internal/schema/toRepresentation.js +87 -107
  553. package/dist/internal/schema/toRepresentation.js.map +1 -1
  554. package/dist/internal/stackTraceLimit.js.map +1 -1
  555. package/dist/internal/stream.js.map +1 -1
  556. package/dist/internal/tracer.js.map +1 -1
  557. package/dist/internal/trie.js +13 -9
  558. package/dist/internal/trie.js.map +1 -1
  559. package/dist/testing/FastCheck.d.ts +8 -7
  560. package/dist/testing/FastCheck.d.ts.map +1 -1
  561. package/dist/testing/FastCheck.js +8 -7
  562. package/dist/testing/FastCheck.js.map +1 -1
  563. package/dist/testing/TestClock.d.ts +57 -28
  564. package/dist/testing/TestClock.d.ts.map +1 -1
  565. package/dist/testing/TestClock.js +50 -18
  566. package/dist/testing/TestClock.js.map +1 -1
  567. package/dist/testing/TestConsole.d.ts +32 -31
  568. package/dist/testing/TestConsole.d.ts.map +1 -1
  569. package/dist/testing/TestConsole.js +24 -22
  570. package/dist/testing/TestConsole.js.map +1 -1
  571. package/dist/testing/TestSchema.d.ts +29 -29
  572. package/dist/testing/TestSchema.js +25 -25
  573. package/dist/testing/TestSchema.js.map +1 -1
  574. package/dist/testing/index.js.map +1 -1
  575. package/dist/unstable/ai/AiError.d.ts +95 -118
  576. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  577. package/dist/unstable/ai/AiError.js +94 -117
  578. package/dist/unstable/ai/AiError.js.map +1 -1
  579. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  580. package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
  581. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  582. package/dist/unstable/ai/Chat.d.ts +132 -97
  583. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  584. package/dist/unstable/ai/Chat.js +55 -51
  585. package/dist/unstable/ai/Chat.js.map +1 -1
  586. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  587. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  588. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  589. package/dist/unstable/ai/IdGenerator.js +26 -21
  590. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  591. package/dist/unstable/ai/LanguageModel.d.ts +107 -67
  592. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  593. package/dist/unstable/ai/LanguageModel.js +104 -64
  594. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  595. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  596. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  597. package/dist/unstable/ai/McpProtocol.js +20 -0
  598. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  599. package/dist/unstable/ai/McpSchema.d.ts +141 -75
  600. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  601. package/dist/unstable/ai/McpSchema.js +58 -50
  602. package/dist/unstable/ai/McpSchema.js.map +1 -1
  603. package/dist/unstable/ai/McpServer.d.ts +68 -59
  604. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  605. package/dist/unstable/ai/McpServer.js +694 -241
  606. package/dist/unstable/ai/McpServer.js.map +1 -1
  607. package/dist/unstable/ai/Model.d.ts +8 -19
  608. package/dist/unstable/ai/Model.d.ts.map +1 -1
  609. package/dist/unstable/ai/Model.js +9 -20
  610. package/dist/unstable/ai/Model.js.map +1 -1
  611. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  612. package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
  613. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  614. package/dist/unstable/ai/Prompt.d.ts +112 -38
  615. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  616. package/dist/unstable/ai/Prompt.js +53 -17
  617. package/dist/unstable/ai/Prompt.js.map +1 -1
  618. package/dist/unstable/ai/Response.d.ts +28 -14
  619. package/dist/unstable/ai/Response.d.ts.map +1 -1
  620. package/dist/unstable/ai/Response.js +9 -4
  621. package/dist/unstable/ai/Response.js.map +1 -1
  622. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  623. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  624. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  625. package/dist/unstable/ai/Telemetry.js +18 -7
  626. package/dist/unstable/ai/Telemetry.js.map +1 -1
  627. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  628. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  629. package/dist/unstable/ai/Tokenizer.js +10 -2
  630. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  631. package/dist/unstable/ai/Tool.d.ts +59 -44
  632. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  633. package/dist/unstable/ai/Tool.js +48 -39
  634. package/dist/unstable/ai/Tool.js.map +1 -1
  635. package/dist/unstable/ai/Toolkit.d.ts +26 -8
  636. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  637. package/dist/unstable/ai/Toolkit.js +18 -4
  638. package/dist/unstable/ai/Toolkit.js.map +1 -1
  639. package/dist/unstable/ai/index.d.ts +4 -0
  640. package/dist/unstable/ai/index.d.ts.map +1 -1
  641. package/dist/unstable/ai/index.js +4 -0
  642. package/dist/unstable/ai/index.js.map +1 -1
  643. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  644. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  645. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  646. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  647. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  648. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  649. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  650. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  651. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  652. package/dist/unstable/ai/internal/structured-output.js +14 -15
  653. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  654. package/dist/unstable/cli/Argument.d.ts +273 -69
  655. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  656. package/dist/unstable/cli/Argument.js +111 -33
  657. package/dist/unstable/cli/Argument.js.map +1 -1
  658. package/dist/unstable/cli/CliConfig.js.map +1 -1
  659. package/dist/unstable/cli/CliError.d.ts +69 -76
  660. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  661. package/dist/unstable/cli/CliError.js +57 -61
  662. package/dist/unstable/cli/CliError.js.map +1 -1
  663. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  664. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  665. package/dist/unstable/cli/CliOutput.js +26 -42
  666. package/dist/unstable/cli/CliOutput.js.map +1 -1
  667. package/dist/unstable/cli/Command.d.ts +705 -107
  668. package/dist/unstable/cli/Command.d.ts.map +1 -1
  669. package/dist/unstable/cli/Command.js +238 -42
  670. package/dist/unstable/cli/Command.js.map +1 -1
  671. package/dist/unstable/cli/Completions.js.map +1 -1
  672. package/dist/unstable/cli/Flag.d.ts +418 -138
  673. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  674. package/dist/unstable/cli/Flag.js +197 -71
  675. package/dist/unstable/cli/Flag.js.map +1 -1
  676. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  677. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  678. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  679. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  680. package/dist/unstable/cli/Param.d.ts +292 -78
  681. package/dist/unstable/cli/Param.d.ts.map +1 -1
  682. package/dist/unstable/cli/Param.js +128 -46
  683. package/dist/unstable/cli/Param.js.map +1 -1
  684. package/dist/unstable/cli/Primitive.d.ts +370 -149
  685. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  686. package/dist/unstable/cli/Primitive.js +344 -136
  687. package/dist/unstable/cli/Primitive.js.map +1 -1
  688. package/dist/unstable/cli/Prompt.d.ts +23 -14
  689. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  690. package/dist/unstable/cli/Prompt.js +23 -14
  691. package/dist/unstable/cli/Prompt.js.map +1 -1
  692. package/dist/unstable/cli/index.js.map +1 -1
  693. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  694. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  695. package/dist/unstable/cli/internal/command.js.map +1 -1
  696. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  697. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  698. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  699. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  700. package/dist/unstable/cli/internal/config.js.map +1 -1
  701. package/dist/unstable/cli/internal/help.js.map +1 -1
  702. package/dist/unstable/cli/internal/lexer.js +17 -7
  703. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  704. package/dist/unstable/cli/internal/parser.js +2 -2
  705. package/dist/unstable/cli/internal/parser.js.map +1 -1
  706. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  707. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  708. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  709. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  710. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  711. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  712. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  713. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  714. package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
  715. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  716. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  717. package/dist/unstable/cluster/Entity.d.ts +10 -10
  718. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  719. package/dist/unstable/cluster/Entity.js +8 -8
  720. package/dist/unstable/cluster/Entity.js.map +1 -1
  721. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  722. package/dist/unstable/cluster/EntityId.js.map +1 -1
  723. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  724. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  725. package/dist/unstable/cluster/EntityProxy.js +4 -2
  726. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  727. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  728. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  729. package/dist/unstable/cluster/EntityResource.js +2 -2
  730. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  731. package/dist/unstable/cluster/EntityType.js.map +1 -1
  732. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  733. package/dist/unstable/cluster/Envelope.js +3 -3
  734. package/dist/unstable/cluster/Envelope.js.map +1 -1
  735. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  736. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  737. package/dist/unstable/cluster/HttpRunner.js +6 -4
  738. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  739. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  740. package/dist/unstable/cluster/MachineId.js.map +1 -1
  741. package/dist/unstable/cluster/Message.d.ts +9 -9
  742. package/dist/unstable/cluster/Message.js +6 -6
  743. package/dist/unstable/cluster/Message.js.map +1 -1
  744. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  745. package/dist/unstable/cluster/MessageStorage.js +5 -5
  746. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  747. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  748. package/dist/unstable/cluster/Reply.js +4 -4
  749. package/dist/unstable/cluster/Reply.js.map +1 -1
  750. package/dist/unstable/cluster/Runner.js.map +1 -1
  751. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  752. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  753. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  754. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  755. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  756. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  757. package/dist/unstable/cluster/RunnerServer.js +16 -16
  758. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  759. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
  760. package/dist/unstable/cluster/RunnerStorage.js +1 -1
  761. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  762. package/dist/unstable/cluster/Runners.d.ts +6 -6
  763. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  764. package/dist/unstable/cluster/Runners.js +19 -10
  765. package/dist/unstable/cluster/Runners.js.map +1 -1
  766. package/dist/unstable/cluster/ShardId.js.map +1 -1
  767. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  768. package/dist/unstable/cluster/Sharding.js +3 -2
  769. package/dist/unstable/cluster/Sharding.js.map +1 -1
  770. package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
  771. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  772. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  773. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  774. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  775. package/dist/unstable/cluster/Singleton.js.map +1 -1
  776. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  777. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  778. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  779. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  780. package/dist/unstable/cluster/Snowflake.js +8 -8
  781. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  782. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  783. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  784. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  785. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
  787. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  788. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  789. package/dist/unstable/cluster/index.js.map +1 -1
  790. package/dist/unstable/cluster/internal/entityManager.js +5 -5
  791. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  792. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  793. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  794. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  795. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  796. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  797. package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
  798. package/dist/unstable/devtools/DevTools.js.map +1 -1
  799. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  800. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  801. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  802. package/dist/unstable/devtools/index.js.map +1 -1
  803. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  804. package/dist/unstable/encoding/Msgpack.js +6 -8
  805. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  806. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  807. package/dist/unstable/encoding/Sse.d.ts +72 -8
  808. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  809. package/dist/unstable/encoding/Sse.js +58 -8
  810. package/dist/unstable/encoding/Sse.js.map +1 -1
  811. package/dist/unstable/encoding/index.js.map +1 -1
  812. package/dist/unstable/eventlog/Event.d.ts +20 -20
  813. package/dist/unstable/eventlog/Event.js.map +1 -1
  814. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  815. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  816. package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
  817. package/dist/unstable/eventlog/EventJournal.js +13 -13
  818. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  819. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  820. package/dist/unstable/eventlog/EventLog.js +3 -3
  821. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  822. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  823. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  824. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  825. package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
  826. package/dist/unstable/eventlog/EventLogMessage.js +1 -1
  827. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  828. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  829. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  830. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  831. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  832. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  833. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  834. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  835. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  836. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  837. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  838. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  839. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  840. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  841. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
  842. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  843. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  844. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  845. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  846. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  847. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  848. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  849. package/dist/unstable/eventlog/index.js.map +1 -1
  850. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  851. package/dist/unstable/http/Cookies.d.ts +2 -2
  852. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  853. package/dist/unstable/http/Cookies.js +30 -18
  854. package/dist/unstable/http/Cookies.js.map +1 -1
  855. package/dist/unstable/http/Etag.d.ts +1 -1
  856. package/dist/unstable/http/Etag.js +1 -1
  857. package/dist/unstable/http/Etag.js.map +1 -1
  858. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  859. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  860. package/dist/unstable/http/Headers.d.ts +2 -2
  861. package/dist/unstable/http/Headers.js +2 -2
  862. package/dist/unstable/http/Headers.js.map +1 -1
  863. package/dist/unstable/http/HttpBody.d.ts +5 -3
  864. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  865. package/dist/unstable/http/HttpBody.js +11 -5
  866. package/dist/unstable/http/HttpBody.js.map +1 -1
  867. package/dist/unstable/http/HttpClient.d.ts +51 -44
  868. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  869. package/dist/unstable/http/HttpClient.js +46 -17
  870. package/dist/unstable/http/HttpClient.js.map +1 -1
  871. package/dist/unstable/http/HttpClientError.js.map +1 -1
  872. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  873. package/dist/unstable/http/HttpClientRequest.js +2 -0
  874. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  875. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  876. package/dist/unstable/http/HttpClientResponse.js +2 -2
  877. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  878. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  879. package/dist/unstable/http/HttpEffect.js +3 -3
  880. package/dist/unstable/http/HttpEffect.js.map +1 -1
  881. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  882. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  883. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  884. package/dist/unstable/http/HttpMethod.js +6 -9
  885. package/dist/unstable/http/HttpMethod.js.map +1 -1
  886. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  887. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  888. package/dist/unstable/http/HttpMiddleware.js +164 -39
  889. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  890. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  891. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  892. package/dist/unstable/http/HttpPlatform.js +32 -0
  893. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  894. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  895. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  896. package/dist/unstable/http/HttpRouter.js +78 -79
  897. package/dist/unstable/http/HttpRouter.js.map +1 -1
  898. package/dist/unstable/http/HttpServer.d.ts +13 -13
  899. package/dist/unstable/http/HttpServer.js +6 -6
  900. package/dist/unstable/http/HttpServer.js.map +1 -1
  901. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  902. package/dist/unstable/http/HttpServerError.js +2 -2
  903. package/dist/unstable/http/HttpServerError.js.map +1 -1
  904. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  905. package/dist/unstable/http/HttpServerRequest.js +4 -4
  906. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  907. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  908. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  909. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  910. package/dist/unstable/http/HttpServerResponse.js +10 -0
  911. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  912. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  913. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  914. package/dist/unstable/http/HttpStaticServer.js +35 -7
  915. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  916. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  917. package/dist/unstable/http/Multipart.d.ts +6 -6
  918. package/dist/unstable/http/Multipart.js +5 -5
  919. package/dist/unstable/http/Multipart.js.map +1 -1
  920. package/dist/unstable/http/Template.js.map +1 -1
  921. package/dist/unstable/http/Url.d.ts +33 -63
  922. package/dist/unstable/http/Url.d.ts.map +1 -1
  923. package/dist/unstable/http/Url.js +14 -28
  924. package/dist/unstable/http/Url.js.map +1 -1
  925. package/dist/unstable/http/UrlParams.d.ts +10 -18
  926. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  927. package/dist/unstable/http/UrlParams.js +9 -17
  928. package/dist/unstable/http/UrlParams.js.map +1 -1
  929. package/dist/unstable/http/index.js.map +1 -1
  930. package/dist/unstable/http/internal/compression.d.ts +2 -0
  931. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  932. package/dist/unstable/http/internal/compression.js +155 -0
  933. package/dist/unstable/http/internal/compression.js.map +1 -0
  934. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  935. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  936. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  937. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  938. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
  939. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  940. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  941. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  942. package/dist/unstable/httpapi/HttpApiClient.js +11 -13
  943. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  944. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
  945. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  946. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  947. package/dist/unstable/httpapi/HttpApiError.js +13 -13
  948. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  949. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  950. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  951. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  952. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  953. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  954. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  955. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  956. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  957. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  958. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
  959. package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
  960. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  961. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  962. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  963. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  964. package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
  965. package/dist/unstable/httpapi/OpenApi.js +13 -13
  966. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  967. package/dist/unstable/httpapi/index.js.map +1 -1
  968. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  969. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  970. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  971. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  972. package/dist/unstable/observability/Otlp.js.map +1 -1
  973. package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
  974. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  975. package/dist/unstable/observability/OtlpExporter.js +17 -4
  976. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  977. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  978. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
  979. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  980. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  981. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  982. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  983. package/dist/unstable/observability/OtlpResource.js +21 -12
  984. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  985. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  986. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  987. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  988. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  989. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  990. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  991. package/dist/unstable/observability/index.js.map +1 -1
  992. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  993. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  994. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  995. package/dist/unstable/observability/internal/protobuf.js +3 -0
  996. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  997. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  998. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  999. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1000. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1001. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1002. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1003. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1004. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1005. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  1006. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1007. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1008. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1009. package/dist/unstable/persistence/Persistence.js +91 -15
  1010. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1011. package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
  1012. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1013. package/dist/unstable/persistence/RateLimiter.js +24 -13
  1014. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1015. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1016. package/dist/unstable/persistence/Redis.js +1 -1
  1017. package/dist/unstable/persistence/Redis.js.map +1 -1
  1018. package/dist/unstable/persistence/index.js.map +1 -1
  1019. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1020. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1021. package/dist/unstable/process/ChildProcess.js +14 -5
  1022. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1023. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1024. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1025. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  1026. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1027. package/dist/unstable/process/index.js.map +1 -1
  1028. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1029. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1030. package/dist/unstable/reactivity/AsyncResult.js +10 -10
  1031. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1032. package/dist/unstable/reactivity/Atom.d.ts +25 -22
  1033. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1034. package/dist/unstable/reactivity/Atom.js +14 -13
  1035. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1036. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1037. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1038. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1039. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1040. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1041. package/dist/unstable/reactivity/AtomRegistry.js +24 -3
  1042. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1043. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1044. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1045. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1046. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1047. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1048. package/dist/unstable/reactivity/Hydration.js +1 -1
  1049. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1050. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1051. package/dist/unstable/reactivity/index.js.map +1 -1
  1052. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1053. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1054. package/dist/unstable/rpc/Rpc.js +4 -2
  1055. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1056. package/dist/unstable/rpc/RpcClient.d.ts +12 -12
  1057. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1058. package/dist/unstable/rpc/RpcClient.js +12 -11
  1059. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1060. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1061. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1062. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1063. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1064. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1065. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1066. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1067. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1068. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1069. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1070. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1071. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1072. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1073. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1074. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1075. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1076. package/dist/unstable/rpc/RpcSerialization.js +175 -96
  1077. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1078. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1079. package/dist/unstable/rpc/RpcServer.js +17 -13
  1080. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1081. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1082. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1083. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1084. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1085. package/dist/unstable/rpc/Utils.js.map +1 -1
  1086. package/dist/unstable/rpc/index.js.map +1 -1
  1087. package/dist/unstable/schema/Model.d.ts +52 -50
  1088. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1089. package/dist/unstable/schema/Model.js +35 -33
  1090. package/dist/unstable/schema/Model.js.map +1 -1
  1091. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  1092. package/dist/unstable/schema/VariantSchema.js +2 -2
  1093. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1094. package/dist/unstable/schema/index.js.map +1 -1
  1095. package/dist/unstable/socket/Socket.d.ts +11 -3
  1096. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1097. package/dist/unstable/socket/Socket.js +9 -4
  1098. package/dist/unstable/socket/Socket.js.map +1 -1
  1099. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1100. package/dist/unstable/socket/index.js.map +1 -1
  1101. package/dist/unstable/sql/Migrator.js.map +1 -1
  1102. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1103. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1104. package/dist/unstable/sql/SqlClient.js +2 -2
  1105. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1106. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1107. package/dist/unstable/sql/SqlError.js.map +1 -1
  1108. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1109. package/dist/unstable/sql/SqlModel.js +2 -2
  1110. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1111. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1112. package/dist/unstable/sql/SqlResolver.js +2 -2
  1113. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1114. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1115. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1116. package/dist/unstable/sql/Statement.d.ts +6 -6
  1117. package/dist/unstable/sql/Statement.js +15 -15
  1118. package/dist/unstable/sql/Statement.js.map +1 -1
  1119. package/dist/unstable/sql/index.js.map +1 -1
  1120. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1121. package/dist/unstable/workers/Transferable.js +1 -1
  1122. package/dist/unstable/workers/Transferable.js.map +1 -1
  1123. package/dist/unstable/workers/Worker.d.ts +2 -2
  1124. package/dist/unstable/workers/Worker.js +2 -2
  1125. package/dist/unstable/workers/Worker.js.map +1 -1
  1126. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1127. package/dist/unstable/workers/WorkerError.js +6 -6
  1128. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1129. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1130. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1131. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1132. package/dist/unstable/workers/index.js.map +1 -1
  1133. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1134. package/dist/unstable/workflow/Activity.js +2 -2
  1135. package/dist/unstable/workflow/Activity.js.map +1 -1
  1136. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1137. package/dist/unstable/workflow/DurableClock.js +1 -1
  1138. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1139. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1140. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1141. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1142. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1143. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1144. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1145. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1146. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1147. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1148. package/dist/unstable/workflow/Workflow.js +13 -14
  1149. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1150. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  1151. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1152. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1153. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1154. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1155. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1156. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1157. package/dist/unstable/workflow/index.js.map +1 -1
  1158. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1159. package/package.json +5 -6
  1160. package/src/Array.ts +982 -1045
  1161. package/src/BigDecimal.ts +433 -756
  1162. package/src/BigInt.ts +213 -269
  1163. package/src/Boolean.ts +146 -188
  1164. package/src/Cache.ts +409 -255
  1165. package/src/Cause.ts +167 -277
  1166. package/src/Channel.ts +891 -816
  1167. package/src/ChannelSchema.ts +1 -1
  1168. package/src/Chunk.ts +841 -1181
  1169. package/src/Clock.ts +181 -49
  1170. package/src/Combiner.ts +20 -33
  1171. package/src/Config.ts +615 -332
  1172. package/src/ConfigProvider.ts +214 -120
  1173. package/src/Console.ts +289 -39
  1174. package/src/Context.ts +319 -378
  1175. package/src/Cron.ts +68 -77
  1176. package/src/Crypto.ts +13 -15
  1177. package/src/Data.ts +60 -80
  1178. package/src/DateTime.ts +564 -660
  1179. package/src/Deferred.ts +253 -256
  1180. package/src/Duration.ts +216 -308
  1181. package/src/Effect.ts +2893 -3279
  1182. package/src/Encoding.ts +22 -40
  1183. package/src/Equal.ts +49 -39
  1184. package/src/Equivalence.ts +103 -105
  1185. package/src/ErrorReporter.ts +51 -27
  1186. package/src/ExecutionPlan.ts +13 -55
  1187. package/src/Exit.ts +116 -192
  1188. package/src/Fiber.ts +81 -148
  1189. package/src/FiberHandle.ts +152 -105
  1190. package/src/FiberMap.ts +225 -174
  1191. package/src/FiberSet.ts +124 -82
  1192. package/src/FileSystem.ts +155 -263
  1193. package/src/Filter.ts +61 -33
  1194. package/src/Formatter.ts +54 -56
  1195. package/src/Function.ts +76 -145
  1196. package/src/Graph.ts +416 -770
  1197. package/src/HKT.ts +12 -6
  1198. package/src/Hash.ts +52 -83
  1199. package/src/HashMap.ts +319 -411
  1200. package/src/HashRing.ts +1 -0
  1201. package/src/HashSet.ts +177 -284
  1202. package/src/Inspectable.ts +12 -12
  1203. package/src/Iterable.ts +620 -786
  1204. package/src/JsonPatch.ts +58 -112
  1205. package/src/JsonPointer.ts +8 -8
  1206. package/src/JsonSchema.ts +402 -244
  1207. package/src/Latch.ts +23 -35
  1208. package/src/Layer.ts +359 -260
  1209. package/src/LayerMap.ts +49 -29
  1210. package/src/LayerRef.ts +6 -2
  1211. package/src/LogLevel.ts +114 -214
  1212. package/src/Logger.ts +344 -697
  1213. package/src/ManagedRuntime.ts +7 -5
  1214. package/src/Match.ts +217 -252
  1215. package/src/Metric.ts +516 -1089
  1216. package/src/MutableHashMap.ts +218 -255
  1217. package/src/MutableHashSet.ts +84 -89
  1218. package/src/MutableList.ts +73 -370
  1219. package/src/MutableRef.ts +420 -243
  1220. package/src/Newtype.ts +21 -14
  1221. package/src/NonEmptyIterable.ts +7 -137
  1222. package/src/Number.ts +196 -233
  1223. package/src/Optic.ts +243 -383
  1224. package/src/Option.ts +447 -812
  1225. package/src/Order.ts +109 -109
  1226. package/src/Ordering.ts +20 -23
  1227. package/src/Path.ts +38 -41
  1228. package/src/Pipeable.ts +6 -5
  1229. package/src/PlatformError.ts +4 -4
  1230. package/src/Pool.ts +4 -2
  1231. package/src/Predicate.ts +200 -181
  1232. package/src/PrimaryKey.ts +7 -7
  1233. package/src/PubSub.ts +526 -552
  1234. package/src/Pull.ts +24 -18
  1235. package/src/Queue.ts +200 -159
  1236. package/src/Random.ts +49 -74
  1237. package/src/RcMap.ts +121 -63
  1238. package/src/RcRef.ts +24 -13
  1239. package/src/Record.ts +291 -488
  1240. package/src/Redactable.ts +10 -3
  1241. package/src/Redacted.ts +25 -25
  1242. package/src/Reducer.ts +8 -15
  1243. package/src/Ref.ts +221 -361
  1244. package/src/References.ts +102 -168
  1245. package/src/RegExp.ts +10 -14
  1246. package/src/Request.ts +31 -21
  1247. package/src/RequestResolver.ts +202 -91
  1248. package/src/Result.ts +312 -484
  1249. package/src/Runtime.ts +50 -75
  1250. package/src/Schedule.ts +308 -1734
  1251. package/src/Scheduler.ts +20 -7
  1252. package/src/Schema.ts +716 -745
  1253. package/src/SchemaAST.ts +466 -358
  1254. package/src/SchemaError.ts +7 -6
  1255. package/src/SchemaGetter.ts +242 -190
  1256. package/src/SchemaIssue.ts +89 -275
  1257. package/src/SchemaParser.ts +180 -93
  1258. package/src/SchemaRepresentation.ts +22 -40
  1259. package/src/SchemaTransformation.ts +129 -88
  1260. package/src/Scope.ts +123 -151
  1261. package/src/ScopedRef.ts +4 -4
  1262. package/src/Semaphore.ts +152 -51
  1263. package/src/Sink.ts +128 -113
  1264. package/src/Stdio.ts +1 -1
  1265. package/src/Stream.ts +2602 -3123
  1266. package/src/String.ts +275 -312
  1267. package/src/Struct.ts +109 -114
  1268. package/src/SubscriptionRef.ts +284 -252
  1269. package/src/Symbol.ts +3 -3
  1270. package/src/Terminal.ts +2 -2
  1271. package/src/Tracer.ts +102 -55
  1272. package/src/Trie.ts +287 -679
  1273. package/src/Tuple.ts +92 -127
  1274. package/src/TxChunk.ts +201 -121
  1275. package/src/TxDeferred.ts +62 -46
  1276. package/src/TxHashMap.ts +645 -799
  1277. package/src/TxHashSet.ts +443 -356
  1278. package/src/TxPriorityQueue.ts +130 -98
  1279. package/src/TxPubSub.ts +107 -80
  1280. package/src/TxQueue.ts +214 -183
  1281. package/src/TxReentrantLock.ts +97 -66
  1282. package/src/TxRef.ts +51 -32
  1283. package/src/TxSemaphore.ts +129 -95
  1284. package/src/TxSubscriptionRef.ts +97 -70
  1285. package/src/Types.ts +126 -67
  1286. package/src/Unify.ts +45 -65
  1287. package/src/Utils.ts +23 -16
  1288. package/src/internal/core.ts +2 -2
  1289. package/src/internal/dateTime.ts +6 -0
  1290. package/src/internal/effect.ts +93 -48
  1291. package/src/internal/persistence.ts +2 -0
  1292. package/src/internal/references.ts +3 -2
  1293. package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
  1294. package/src/internal/schema/fromRepresentation.ts +10 -16
  1295. package/src/internal/schema/parser.ts +22 -0
  1296. package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
  1297. package/src/internal/schema/toRepresentation.ts +104 -119
  1298. package/src/internal/trie.ts +10 -11
  1299. package/src/testing/FastCheck.ts +8 -7
  1300. package/src/testing/TestClock.ts +72 -30
  1301. package/src/testing/TestConsole.ts +32 -31
  1302. package/src/testing/TestSchema.ts +29 -29
  1303. package/src/unstable/ai/AiError.ts +95 -118
  1304. package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
  1305. package/src/unstable/ai/Chat.ts +132 -97
  1306. package/src/unstable/ai/IdGenerator.ts +32 -28
  1307. package/src/unstable/ai/LanguageModel.ts +107 -67
  1308. package/src/unstable/ai/McpProtocol.ts +48 -0
  1309. package/src/unstable/ai/McpSchema.ts +60 -50
  1310. package/src/unstable/ai/McpServer.ts +930 -304
  1311. package/src/unstable/ai/Model.ts +9 -20
  1312. package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
  1313. package/src/unstable/ai/Prompt.ts +145 -43
  1314. package/src/unstable/ai/Response.ts +28 -14
  1315. package/src/unstable/ai/Telemetry.ts +46 -13
  1316. package/src/unstable/ai/Tokenizer.ts +14 -3
  1317. package/src/unstable/ai/Tool.ts +59 -44
  1318. package/src/unstable/ai/Toolkit.ts +26 -8
  1319. package/src/unstable/ai/index.ts +5 -0
  1320. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1321. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1322. package/src/unstable/ai/internal/structured-output.ts +13 -18
  1323. package/src/unstable/cli/Argument.ts +273 -69
  1324. package/src/unstable/cli/CliError.ts +69 -76
  1325. package/src/unstable/cli/CliOutput.ts +44 -58
  1326. package/src/unstable/cli/Command.ts +705 -107
  1327. package/src/unstable/cli/Flag.ts +418 -138
  1328. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1329. package/src/unstable/cli/HelpDoc.ts +12 -4
  1330. package/src/unstable/cli/Param.ts +292 -78
  1331. package/src/unstable/cli/Primitive.ts +370 -149
  1332. package/src/unstable/cli/Prompt.ts +28 -14
  1333. package/src/unstable/cli/internal/lexer.ts +8 -2
  1334. package/src/unstable/cli/internal/parser.ts +2 -2
  1335. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1336. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
  1337. package/src/unstable/cluster/Entity.ts +15 -16
  1338. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1339. package/src/unstable/cluster/EntityResource.ts +2 -2
  1340. package/src/unstable/cluster/Envelope.ts +3 -3
  1341. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1342. package/src/unstable/cluster/Message.ts +9 -9
  1343. package/src/unstable/cluster/MessageStorage.ts +15 -15
  1344. package/src/unstable/cluster/Reply.ts +4 -6
  1345. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1346. package/src/unstable/cluster/RunnerServer.ts +41 -8
  1347. package/src/unstable/cluster/RunnerStorage.ts +2 -2
  1348. package/src/unstable/cluster/Runners.ts +23 -12
  1349. package/src/unstable/cluster/Sharding.ts +7 -8
  1350. package/src/unstable/cluster/ShardingConfig.ts +3 -3
  1351. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1352. package/src/unstable/cluster/Snowflake.ts +8 -8
  1353. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  1354. package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
  1355. package/src/unstable/cluster/internal/entityManager.ts +11 -15
  1356. package/src/unstable/encoding/Msgpack.ts +6 -8
  1357. package/src/unstable/encoding/Sse.ts +98 -16
  1358. package/src/unstable/eventlog/Event.ts +20 -20
  1359. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1360. package/src/unstable/eventlog/EventJournal.ts +15 -15
  1361. package/src/unstable/eventlog/EventLog.ts +3 -3
  1362. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  1363. package/src/unstable/eventlog/EventLogMessage.ts +2 -2
  1364. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1365. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1366. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1367. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
  1368. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1369. package/src/unstable/http/Cookies.ts +35 -21
  1370. package/src/unstable/http/Etag.ts +1 -1
  1371. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1372. package/src/unstable/http/Headers.ts +2 -2
  1373. package/src/unstable/http/HttpBody.ts +20 -5
  1374. package/src/unstable/http/HttpClient.ts +83 -55
  1375. package/src/unstable/http/HttpClientRequest.ts +2 -0
  1376. package/src/unstable/http/HttpClientResponse.ts +4 -4
  1377. package/src/unstable/http/HttpEffect.ts +8 -8
  1378. package/src/unstable/http/HttpMethod.ts +6 -9
  1379. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1380. package/src/unstable/http/HttpPlatform.ts +95 -0
  1381. package/src/unstable/http/HttpRouter.ts +102 -98
  1382. package/src/unstable/http/HttpServer.ts +13 -13
  1383. package/src/unstable/http/HttpServerError.ts +2 -2
  1384. package/src/unstable/http/HttpServerRequest.ts +4 -4
  1385. package/src/unstable/http/HttpServerResponse.ts +30 -0
  1386. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1387. package/src/unstable/http/Multipart.ts +6 -6
  1388. package/src/unstable/http/Url.ts +33 -63
  1389. package/src/unstable/http/UrlParams.ts +10 -18
  1390. package/src/unstable/http/internal/compression.ts +196 -0
  1391. package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
  1392. package/src/unstable/httpapi/HttpApiClient.ts +14 -14
  1393. package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
  1394. package/src/unstable/httpapi/HttpApiError.ts +13 -13
  1395. package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
  1396. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1397. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1398. package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
  1399. package/src/unstable/httpapi/OpenApi.ts +13 -13
  1400. package/src/unstable/observability/OtlpExporter.ts +31 -19
  1401. package/src/unstable/observability/OtlpMetrics.ts +4 -1
  1402. package/src/unstable/observability/OtlpResource.ts +26 -17
  1403. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1404. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1405. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1406. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1407. package/src/unstable/persistence/Persistable.ts +8 -8
  1408. package/src/unstable/persistence/PersistedQueue.ts +6 -6
  1409. package/src/unstable/persistence/Persistence.ts +126 -19
  1410. package/src/unstable/persistence/RateLimiter.ts +26 -15
  1411. package/src/unstable/persistence/Redis.ts +2 -2
  1412. package/src/unstable/process/ChildProcess.ts +64 -21
  1413. package/src/unstable/process/ChildProcessSpawner.ts +21 -10
  1414. package/src/unstable/reactivity/AsyncResult.ts +12 -13
  1415. package/src/unstable/reactivity/Atom.ts +28 -25
  1416. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1417. package/src/unstable/reactivity/AtomRegistry.ts +24 -3
  1418. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1419. package/src/unstable/reactivity/Hydration.ts +1 -1
  1420. package/src/unstable/rpc/Rpc.ts +35 -33
  1421. package/src/unstable/rpc/RpcClient.ts +16 -15
  1422. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1423. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1424. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1425. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1426. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1427. package/src/unstable/rpc/RpcServer.ts +18 -15
  1428. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1429. package/src/unstable/schema/Model.ts +52 -50
  1430. package/src/unstable/schema/VariantSchema.ts +5 -5
  1431. package/src/unstable/socket/Socket.ts +17 -4
  1432. package/src/unstable/sql/SqlClient.ts +5 -6
  1433. package/src/unstable/sql/SqlModel.ts +2 -2
  1434. package/src/unstable/sql/SqlResolver.ts +5 -5
  1435. package/src/unstable/sql/Statement.ts +24 -23
  1436. package/src/unstable/workers/Transferable.ts +1 -1
  1437. package/src/unstable/workers/Worker.ts +2 -2
  1438. package/src/unstable/workers/WorkerError.ts +7 -7
  1439. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1440. package/src/unstable/workflow/Activity.ts +2 -2
  1441. package/src/unstable/workflow/DurableClock.ts +1 -1
  1442. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1443. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1444. package/src/unstable/workflow/Workflow.ts +23 -23
  1445. package/src/unstable/workflow/WorkflowEngine.ts +1 -1
  1446. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1447. package/dist/internal/version.d.ts +0 -3
  1448. package/dist/internal/version.d.ts.map +0 -1
  1449. package/dist/internal/version.js +0 -2
  1450. package/dist/internal/version.js.map +0 -1
  1451. package/src/internal/version.ts +0 -2
package/src/Option.ts CHANGED
@@ -178,17 +178,16 @@ export declare namespace Option {
178
178
  *
179
179
  * **Example** (Extracting the value type)
180
180
  *
181
- * ```ts
182
- * import type { Option } from "effect"
183
- *
184
- * declare const myOption: Option.Option<string>
181
+ * ```ts import.meta.vitest
182
+ * import { Option } from "effect"
185
183
  *
186
- * // ┌─── string
187
- * // ▼
184
+ * const myOption: Option.Option<string> = Option.some("value")
188
185
  * type MyType = Option.Option.Value<typeof myOption>
186
+ *
187
+ * const witness: MyType = "value"
189
188
  * ```
190
189
  *
191
- * @category Type-level Utils
190
+ * @category utility types
192
191
  * @since 2.0.0
193
192
  */
194
193
  export type Value<T extends Option<any>> = [T] extends [Option<infer _A>] ? _A : never
@@ -219,7 +218,7 @@ export interface OptionUnifyIgnore {}
219
218
  * Use when defining higher-kinded abstractions that must accept optional-value
220
219
  * types as one of their type-lambda inputs.
221
220
  *
222
- * @category type lambdas
221
+ * @category utility types
223
222
  * @since 2.0.0
224
223
  */
225
224
  export interface OptionTypeLambda extends TypeLambda {
@@ -241,15 +240,12 @@ export interface OptionTypeLambda extends TypeLambda {
241
240
  *
242
241
  * **Example** (Creating an empty Option)
243
242
  *
244
- * ```ts
243
+ * ```ts import.meta.vitest
245
244
  * import { Option } from "effect"
246
245
  *
247
246
  * // ┌─── Option<never>
248
247
  * // ▼
249
- * const noValue = Option.none()
250
- *
251
- * console.log(noValue)
252
- * // Output: { _id: 'Option', _tag: 'None' }
248
+ * const noValue = Option.none() // => Option.none()
253
249
  * ```
254
250
  *
255
251
  * @see {@link some} for the opposite operation.
@@ -274,15 +270,12 @@ export const none = <A = never>(): Option<A> => option.none
274
270
  *
275
271
  * **Example** (Wrapping a value)
276
272
  *
277
- * ```ts
273
+ * ```ts import.meta.vitest
278
274
  * import { Option } from "effect"
279
275
  *
280
276
  * // ┌─── Option<number>
281
277
  * // ▼
282
- * const value = Option.some(1)
283
- *
284
- * console.log(value)
285
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
278
+ * const value = Option.some(1) // => Option.some(1)
286
279
  * ```
287
280
  *
288
281
  * @see {@link none} for the opposite operation.
@@ -307,17 +300,12 @@ export const some: <A>(value: A) => Option<A> = option.some
307
300
  *
308
301
  * **Example** (Checking if a value is an Option)
309
302
  *
310
- * ```ts
303
+ * ```ts import.meta.vitest
311
304
  * import { Option } from "effect"
312
305
  *
313
- * console.log(Option.isOption(Option.some(1)))
314
- * // Output: true
315
- *
316
- * console.log(Option.isOption(Option.none()))
317
- * // Output: true
318
- *
319
- * console.log(Option.isOption({}))
320
- * // Output: false
306
+ * Option.isOption(Option.some(1)) // => true
307
+ * Option.isOption(Option.none()) // => true
308
+ * Option.isOption({}) // => false
321
309
  * ```
322
310
  *
323
311
  * @see {@link isNone} to check for `None` specifically
@@ -341,14 +329,11 @@ export const isOption: (input: unknown) => input is Option<unknown> = option.isO
341
329
  *
342
330
  * **Example** (Checking for None)
343
331
  *
344
- * ```ts
332
+ * ```ts import.meta.vitest
345
333
  * import { Option } from "effect"
346
334
  *
347
- * console.log(Option.isNone(Option.some(1)))
348
- * // Output: false
349
- *
350
- * console.log(Option.isNone(Option.none()))
351
- * // Output: true
335
+ * Option.isNone(Option.some(1)) // => false
336
+ * Option.isNone(Option.none()) // => true
352
337
  * ```
353
338
  *
354
339
  * @see {@link isSome} for the opposite check.
@@ -371,14 +356,11 @@ export const isNone: <A>(self: Option<A>) => self is None<A> = option.isNone
371
356
  *
372
357
  * **Example** (Checking for Some)
373
358
  *
374
- * ```ts
359
+ * ```ts import.meta.vitest
375
360
  * import { Option } from "effect"
376
361
  *
377
- * console.log(Option.isSome(Option.some(1)))
378
- * // Output: true
379
- *
380
- * console.log(Option.isSome(Option.none()))
381
- * // Output: false
362
+ * Option.isSome(Option.some(1)) // => true
363
+ * Option.isSome(Option.none()) // => false
382
364
  * ```
383
365
  *
384
366
  * @see {@link isNone} for the opposite check.
@@ -404,16 +386,13 @@ export const isSome: <A>(self: Option<A>) => self is Some<A> = option.isSome
404
386
  *
405
387
  * **Example** (Matching on an Option)
406
388
  *
407
- * ```ts
389
+ * ```ts import.meta.vitest
408
390
  * import { Option } from "effect"
409
391
  *
410
- * const message = Option.match(Option.some(1), {
392
+ * Option.match(Option.some(1), {
411
393
  * onNone: () => "Option is empty",
412
394
  * onSome: (value) => `Option has a value: ${value}`
413
- * })
414
- *
415
- * console.log(message)
416
- * // Output: "Option has a value: 1"
395
+ * }) // => "Option has a value: 1"
417
396
  * ```
418
397
  *
419
398
  * @see {@link getOrElse} for unwrapping with a default
@@ -438,16 +417,13 @@ export const match: {
438
417
  *
439
418
  * **Example** (Matching on an Option)
440
419
  *
441
- * ```ts
420
+ * ```ts import.meta.vitest
442
421
  * import { Option } from "effect"
443
422
  *
444
- * const message = Option.match(Option.some(1), {
423
+ * Option.match(Option.some(1), {
445
424
  * onNone: () => "Option is empty",
446
425
  * onSome: (value) => `Option has a value: ${value}`
447
- * })
448
- *
449
- * console.log(message)
450
- * // Output: "Option has a value: 1"
426
+ * }) // => "Option has a value: 1"
451
427
  * ```
452
428
  *
453
429
  * @see {@link getOrElse} for unwrapping with a default
@@ -477,16 +453,13 @@ export const match: {
477
453
  *
478
454
  * **Example** (Matching on an Option)
479
455
  *
480
- * ```ts
456
+ * ```ts import.meta.vitest
481
457
  * import { Option } from "effect"
482
458
  *
483
- * const message = Option.match(Option.some(1), {
459
+ * Option.match(Option.some(1), {
484
460
  * onNone: () => "Option is empty",
485
461
  * onSome: (value) => `Option has a value: ${value}`
486
- * })
487
- *
488
- * console.log(message)
489
- * // Output: "Option has a value: 1"
462
+ * }) // => "Option has a value: 1"
490
463
  * ```
491
464
  *
492
465
  * @see {@link getOrElse} for unwrapping with a default
@@ -525,7 +498,7 @@ export const match: {
525
498
  *
526
499
  * **Example** (Converting a parser to a type guard)
527
500
  *
528
- * ```ts
501
+ * ```ts import.meta.vitest
529
502
  * import { Option } from "effect"
530
503
  *
531
504
  * type MyData = string | number
@@ -537,11 +510,8 @@ export const match: {
537
510
  * // ▼
538
511
  * const isString = Option.toRefinement(parseString)
539
512
  *
540
- * console.log(isString("a"))
541
- * // Output: true
542
- *
543
- * console.log(isString(1))
544
- * // Output: false
513
+ * isString("a") // => true
514
+ * isString(1) // => false
545
515
  * ```
546
516
  *
547
517
  * @see {@link liftPredicate} for the reverse direction
@@ -567,14 +537,11 @@ export const toRefinement = <A, B extends A>(f: (a: A) => Option<B>): (a: A) =>
567
537
  *
568
538
  * **Example** (Getting the first element)
569
539
  *
570
- * ```ts
540
+ * ```ts import.meta.vitest
571
541
  * import { Option } from "effect"
572
542
  *
573
- * console.log(Option.fromIterable([1, 2, 3]))
574
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
575
- *
576
- * console.log(Option.fromIterable([]))
577
- * // Output: { _id: 'Option', _tag: 'None' }
543
+ * Option.fromIterable([1, 2, 3]) // => Option.some(1)
544
+ * Option.fromIterable([]) // => Option.none()
578
545
  * ```
579
546
  *
580
547
  * @see {@link toArray} for the inverse direction
@@ -604,14 +571,11 @@ export const fromIterable = <A>(collection: Iterable<A>): Option<A> => {
604
571
  *
605
572
  * **Example** (Extracting the success side)
606
573
  *
607
- * ```ts
574
+ * ```ts import.meta.vitest
608
575
  * import { Option, Result } from "effect"
609
576
  *
610
- * console.log(Option.getSuccess(Result.succeed("ok")))
611
- * // Output: { _id: 'Option', _tag: 'Some', value: 'ok' }
612
- *
613
- * console.log(Option.getSuccess(Result.fail("err")))
614
- * // Output: { _id: 'Option', _tag: 'None' }
577
+ * Option.getSuccess(Result.succeed("ok")) // => Option.some("ok")
578
+ * Option.getSuccess(Result.fail("err")) // => Option.none()
615
579
  * ```
616
580
  *
617
581
  * @see {@link getFailure} for the opposite operation.
@@ -636,14 +600,11 @@ export const getSuccess: <A, E>(self: Result<A, E>) => Option<A> = result.getSuc
636
600
  *
637
601
  * **Example** (Extracting the failure side)
638
602
  *
639
- * ```ts
603
+ * ```ts import.meta.vitest
640
604
  * import { Option, Result } from "effect"
641
605
  *
642
- * console.log(Option.getFailure(Result.succeed("ok")))
643
- * // Output: { _id: 'Option', _tag: 'None' }
644
- *
645
- * console.log(Option.getFailure(Result.fail("err")))
646
- * // Output: { _id: 'Option', _tag: 'Some', value: 'err' }
606
+ * Option.getFailure(Result.succeed("ok")) // => Option.none()
607
+ * Option.getFailure(Result.fail("err")) // => Option.some("err")
647
608
  * ```
648
609
  *
649
610
  * @see {@link getSuccess} for the opposite operation.
@@ -669,14 +630,11 @@ export const getFailure: <A, E>(self: Result<A, E>) => Option<E> = result.getFai
669
630
  *
670
631
  * **Example** (Unwrapping with a fallback)
671
632
  *
672
- * ```ts
633
+ * ```ts import.meta.vitest
673
634
  * import { Option } from "effect"
674
635
  *
675
- * console.log(Option.some(1).pipe(Option.getOrElse(() => 0)))
676
- * // Output: 1
677
- *
678
- * console.log(Option.none().pipe(Option.getOrElse(() => 0)))
679
- * // Output: 0
636
+ * Option.some(1).pipe(Option.getOrElse(() => 0)) // => 1
637
+ * Option.none().pipe(Option.getOrElse(() => 0)) // => 0
680
638
  * ```
681
639
  *
682
640
  * @see {@link getOrNull} to fall back to `null`
@@ -703,14 +661,11 @@ export const getOrElse: {
703
661
  *
704
662
  * **Example** (Unwrapping with a fallback)
705
663
  *
706
- * ```ts
664
+ * ```ts import.meta.vitest
707
665
  * import { Option } from "effect"
708
666
  *
709
- * console.log(Option.some(1).pipe(Option.getOrElse(() => 0)))
710
- * // Output: 1
711
- *
712
- * console.log(Option.none().pipe(Option.getOrElse(() => 0)))
713
- * // Output: 0
667
+ * Option.some(1).pipe(Option.getOrElse(() => 0)) // => 1
668
+ * Option.none().pipe(Option.getOrElse(() => 0)) // => 0
714
669
  * ```
715
670
  *
716
671
  * @see {@link getOrNull} to fall back to `null`
@@ -737,14 +692,11 @@ export const getOrElse: {
737
692
  *
738
693
  * **Example** (Unwrapping with a fallback)
739
694
  *
740
- * ```ts
695
+ * ```ts import.meta.vitest
741
696
  * import { Option } from "effect"
742
697
  *
743
- * console.log(Option.some(1).pipe(Option.getOrElse(() => 0)))
744
- * // Output: 1
745
- *
746
- * console.log(Option.none().pipe(Option.getOrElse(() => 0)))
747
- * // Output: 0
698
+ * Option.some(1).pipe(Option.getOrElse(() => 0)) // => 1
699
+ * Option.none().pipe(Option.getOrElse(() => 0)) // => 0
748
700
  * ```
749
701
  *
750
702
  * @see {@link getOrNull} to fall back to `null`
@@ -776,14 +728,11 @@ export const getOrElse: {
776
728
  *
777
729
  * **Example** (Providing a fallback Option)
778
730
  *
779
- * ```ts
731
+ * ```ts import.meta.vitest
780
732
  * import { Option } from "effect"
781
733
  *
782
- * console.log(Option.none().pipe(Option.orElse(() => Option.some("b"))))
783
- * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }
784
- *
785
- * console.log(Option.some("a").pipe(Option.orElse(() => Option.some("b"))))
786
- * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
734
+ * Option.none().pipe(Option.orElse(() => Option.some("b"))) // => Option.some("b")
735
+ * Option.some("a").pipe(Option.orElse(() => Option.some("b"))) // => Option.some("a")
787
736
  * ```
788
737
  *
789
738
  * @see {@link orElseSome} to wrap the fallback value in `Some` automatically
@@ -809,14 +758,11 @@ export const orElse: {
809
758
  *
810
759
  * **Example** (Providing a fallback Option)
811
760
  *
812
- * ```ts
761
+ * ```ts import.meta.vitest
813
762
  * import { Option } from "effect"
814
763
  *
815
- * console.log(Option.none().pipe(Option.orElse(() => Option.some("b"))))
816
- * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }
817
- *
818
- * console.log(Option.some("a").pipe(Option.orElse(() => Option.some("b"))))
819
- * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
764
+ * Option.none().pipe(Option.orElse(() => Option.some("b"))) // => Option.some("b")
765
+ * Option.some("a").pipe(Option.orElse(() => Option.some("b"))) // => Option.some("a")
820
766
  * ```
821
767
  *
822
768
  * @see {@link orElseSome} to wrap the fallback value in `Some` automatically
@@ -842,14 +788,11 @@ export const orElse: {
842
788
  *
843
789
  * **Example** (Providing a fallback Option)
844
790
  *
845
- * ```ts
791
+ * ```ts import.meta.vitest
846
792
  * import { Option } from "effect"
847
793
  *
848
- * console.log(Option.none().pipe(Option.orElse(() => Option.some("b"))))
849
- * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }
850
- *
851
- * console.log(Option.some("a").pipe(Option.orElse(() => Option.some("b"))))
852
- * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
794
+ * Option.none().pipe(Option.orElse(() => Option.some("b"))) // => Option.some("b")
795
+ * Option.some("a").pipe(Option.orElse(() => Option.some("b"))) // => Option.some("a")
853
796
  * ```
854
797
  *
855
798
  * @see {@link orElseSome} to wrap the fallback value in `Some` automatically
@@ -879,14 +822,11 @@ export const orElse: {
879
822
  *
880
823
  * **Example** (Providing a fallback value)
881
824
  *
882
- * ```ts
825
+ * ```ts import.meta.vitest
883
826
  * import { Option } from "effect"
884
827
  *
885
- * console.log(Option.none().pipe(Option.orElseSome(() => "b")))
886
- * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }
887
- *
888
- * console.log(Option.some("a").pipe(Option.orElseSome(() => "b")))
889
- * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
828
+ * Option.none().pipe(Option.orElseSome(() => "b")) // => Option.some("b")
829
+ * Option.some("a").pipe(Option.orElseSome(() => "b")) // => Option.some("a")
890
830
  * ```
891
831
  *
892
832
  * @see {@link orElse} when the fallback is itself an `Option`
@@ -910,14 +850,11 @@ export const orElseSome: {
910
850
  *
911
851
  * **Example** (Providing a fallback value)
912
852
  *
913
- * ```ts
853
+ * ```ts import.meta.vitest
914
854
  * import { Option } from "effect"
915
855
  *
916
- * console.log(Option.none().pipe(Option.orElseSome(() => "b")))
917
- * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }
918
- *
919
- * console.log(Option.some("a").pipe(Option.orElseSome(() => "b")))
920
- * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
856
+ * Option.none().pipe(Option.orElseSome(() => "b")) // => Option.some("b")
857
+ * Option.some("a").pipe(Option.orElseSome(() => "b")) // => Option.some("a")
921
858
  * ```
922
859
  *
923
860
  * @see {@link orElse} when the fallback is itself an `Option`
@@ -941,14 +878,11 @@ export const orElseSome: {
941
878
  *
942
879
  * **Example** (Providing a fallback value)
943
880
  *
944
- * ```ts
881
+ * ```ts import.meta.vitest
945
882
  * import { Option } from "effect"
946
883
  *
947
- * console.log(Option.none().pipe(Option.orElseSome(() => "b")))
948
- * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }
949
- *
950
- * console.log(Option.some("a").pipe(Option.orElseSome(() => "b")))
951
- * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
884
+ * Option.none().pipe(Option.orElseSome(() => "b")) // => Option.some("b")
885
+ * Option.some("a").pipe(Option.orElseSome(() => "b")) // => Option.some("a")
952
886
  * ```
953
887
  *
954
888
  * @see {@link orElse} when the fallback is itself an `Option`
@@ -978,14 +912,13 @@ export const orElseSome: {
978
912
  *
979
913
  * **Example** (Tracking value source)
980
914
  *
981
- * ```ts
982
- * import { Option } from "effect"
915
+ * ```ts import.meta.vitest
916
+ * import { Option, Result } from "effect"
983
917
  *
984
- * console.log(Option.orElseResult(Option.some("primary"), () => Option.some("fallback")))
985
- * // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Failure', value: 'primary' } }
918
+ * const fallback = () => Option.some("fallback")
986
919
  *
987
- * console.log(Option.orElseResult(Option.none(), () => Option.some("fallback")))
988
- * // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Success', value: 'fallback' } }
920
+ * Option.orElseResult(Option.some("primary"), fallback) // => Option.some(Result.fail("primary"))
921
+ * Option.orElseResult(Option.none(), fallback) // => Option.some(Result.succeed("fallback"))
989
922
  * ```
990
923
  *
991
924
  * @see {@link orElse} for the simpler variant without source tracking
@@ -1010,14 +943,13 @@ export const orElseResult: {
1010
943
  *
1011
944
  * **Example** (Tracking value source)
1012
945
  *
1013
- * ```ts
1014
- * import { Option } from "effect"
946
+ * ```ts import.meta.vitest
947
+ * import { Option, Result } from "effect"
1015
948
  *
1016
- * console.log(Option.orElseResult(Option.some("primary"), () => Option.some("fallback")))
1017
- * // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Failure', value: 'primary' } }
949
+ * const fallback = () => Option.some("fallback")
1018
950
  *
1019
- * console.log(Option.orElseResult(Option.none(), () => Option.some("fallback")))
1020
- * // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Success', value: 'fallback' } }
951
+ * Option.orElseResult(Option.some("primary"), fallback) // => Option.some(Result.fail("primary"))
952
+ * Option.orElseResult(Option.none(), fallback) // => Option.some(Result.succeed("fallback"))
1021
953
  * ```
1022
954
  *
1023
955
  * @see {@link orElse} for the simpler variant without source tracking
@@ -1042,14 +974,13 @@ export const orElseResult: {
1042
974
  *
1043
975
  * **Example** (Tracking value source)
1044
976
  *
1045
- * ```ts
1046
- * import { Option } from "effect"
977
+ * ```ts import.meta.vitest
978
+ * import { Option, Result } from "effect"
1047
979
  *
1048
- * console.log(Option.orElseResult(Option.some("primary"), () => Option.some("fallback")))
1049
- * // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Failure', value: 'primary' } }
980
+ * const fallback = () => Option.some("fallback")
1050
981
  *
1051
- * console.log(Option.orElseResult(Option.none(), () => Option.some("fallback")))
1052
- * // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Success', value: 'fallback' } }
982
+ * Option.orElseResult(Option.some("primary"), fallback) // => Option.some(Result.fail("primary"))
983
+ * Option.orElseResult(Option.none(), fallback) // => Option.some(Result.succeed("fallback"))
1053
984
  * ```
1054
985
  *
1055
986
  * @see {@link orElse} for the simpler variant without source tracking
@@ -1079,15 +1010,14 @@ export const orElseResult: {
1079
1010
  *
1080
1011
  * **Example** (Finding the first Some)
1081
1012
  *
1082
- * ```ts
1013
+ * ```ts import.meta.vitest
1083
1014
  * import { Option } from "effect"
1084
1015
  *
1085
- * console.log(Option.firstSomeOf([
1016
+ * Option.firstSomeOf([
1086
1017
  * Option.none(),
1087
1018
  * Option.some(1),
1088
1019
  * Option.some(2)
1089
- * ]))
1090
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
1020
+ * ]) // => Option.some(1)
1091
1021
  * ```
1092
1022
  *
1093
1023
  * @see {@link orElse} for a two-option fallback
@@ -1122,17 +1052,12 @@ export const firstSomeOf = <T, C extends Iterable<Option<T>> = Iterable<Option<T
1122
1052
  *
1123
1053
  * **Example** (Converting nullable values to an Option)
1124
1054
  *
1125
- * ```ts
1055
+ * ```ts import.meta.vitest
1126
1056
  * import { Option } from "effect"
1127
1057
  *
1128
- * console.log(Option.fromNullishOr(undefined))
1129
- * // Output: { _id: 'Option', _tag: 'None' }
1130
- *
1131
- * console.log(Option.fromNullishOr(null))
1132
- * // Output: { _id: 'Option', _tag: 'None' }
1133
- *
1134
- * console.log(Option.fromNullishOr(1))
1135
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
1058
+ * Option.fromNullishOr(undefined) // => Option.none()
1059
+ * Option.fromNullishOr(null) // => Option.none()
1060
+ * Option.fromNullishOr(1) // => Option.some(1)
1136
1061
  * ```
1137
1062
  *
1138
1063
  * @see {@link fromNullOr} to only treat `null` as absent
@@ -1162,17 +1087,12 @@ export const fromNullishOr = <A>(
1162
1087
  *
1163
1088
  * **Example** (Converting possibly undefined values to an Option)
1164
1089
  *
1165
- * ```ts
1090
+ * ```ts import.meta.vitest
1166
1091
  * import { Option } from "effect"
1167
1092
  *
1168
- * console.log(Option.fromUndefinedOr(undefined))
1169
- * // Output: { _id: 'Option', _tag: 'None' }
1170
- *
1171
- * console.log(Option.fromUndefinedOr(null))
1172
- * // Output: { _id: 'Option', _tag: 'Some', value: null }
1173
- *
1174
- * console.log(Option.fromUndefinedOr(42))
1175
- * // Output: { _id: 'Option', _tag: 'Some', value: 42 }
1093
+ * Option.fromUndefinedOr(undefined) // => Option.none()
1094
+ * Option.fromUndefinedOr(null) // => Option.some(null)
1095
+ * Option.fromUndefinedOr(42) // => Option.some(42)
1176
1096
  * ```
1177
1097
  *
1178
1098
  * @see {@link fromNullishOr} to treat both `null` and `undefined` as absent
@@ -1201,17 +1121,12 @@ export const fromUndefinedOr = <A>(
1201
1121
  *
1202
1122
  * **Example** (Converting possibly null values to an Option)
1203
1123
  *
1204
- * ```ts
1124
+ * ```ts import.meta.vitest
1205
1125
  * import { Option } from "effect"
1206
1126
  *
1207
- * console.log(Option.fromNullOr(null))
1208
- * // Output: { _id: 'Option', _tag: 'None' }
1209
- *
1210
- * console.log(Option.fromNullOr(undefined))
1211
- * // Output: { _id: 'Option', _tag: 'Some', value: undefined }
1212
- *
1213
- * console.log(Option.fromNullOr(42))
1214
- * // Output: { _id: 'Option', _tag: 'Some', value: 42 }
1127
+ * Option.fromNullOr(null) // => Option.none()
1128
+ * Option.fromNullOr(undefined) // => Option.some(undefined)
1129
+ * Option.fromNullOr(42) // => Option.some(42)
1215
1130
  * ```
1216
1131
  *
1217
1132
  * @see {@link fromNullishOr} to treat both `null` and `undefined` as absent
@@ -1239,7 +1154,7 @@ export const fromNullOr = <A>(
1239
1154
  *
1240
1155
  * **Example** (Lifting a parser)
1241
1156
  *
1242
- * ```ts
1157
+ * ```ts import.meta.vitest
1243
1158
  * import { Option } from "effect"
1244
1159
  *
1245
1160
  * const parse = (s: string): number | undefined => {
@@ -1249,11 +1164,8 @@ export const fromNullOr = <A>(
1249
1164
  *
1250
1165
  * const parseOption = Option.liftNullishOr(parse)
1251
1166
  *
1252
- * console.log(parseOption("1"))
1253
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
1254
- *
1255
- * console.log(parseOption("not a number"))
1256
- * // Output: { _id: 'Option', _tag: 'None' }
1167
+ * parseOption("1") // => Option.some(1)
1168
+ * parseOption("not a number") // => Option.none()
1257
1169
  * ```
1258
1170
  *
1259
1171
  * @see {@link fromNullishOr} for converting a single value
@@ -1281,14 +1193,11 @@ export const liftNullishOr = <A extends ReadonlyArray<unknown>, B>(
1281
1193
  *
1282
1194
  * **Example** (Unwrapping to null)
1283
1195
  *
1284
- * ```ts
1196
+ * ```ts import.meta.vitest
1285
1197
  * import { Option } from "effect"
1286
1198
  *
1287
- * console.log(Option.getOrNull(Option.some(1)))
1288
- * // Output: 1
1289
- *
1290
- * console.log(Option.getOrNull(Option.none()))
1291
- * // Output: null
1199
+ * Option.getOrNull(Option.some(1)) // => 1
1200
+ * Option.getOrNull(Option.none()) // => null
1292
1201
  * ```
1293
1202
  *
1294
1203
  * @see {@link getOrUndefined} to return `undefined` instead
@@ -1314,14 +1223,11 @@ export const getOrNull: <A>(self: Option<A>) => A | null = getOrElse(constNull)
1314
1223
  *
1315
1224
  * **Example** (Unwrapping to undefined)
1316
1225
  *
1317
- * ```ts
1226
+ * ```ts import.meta.vitest
1318
1227
  * import { Option } from "effect"
1319
1228
  *
1320
- * console.log(Option.getOrUndefined(Option.some(1)))
1321
- * // Output: 1
1322
- *
1323
- * console.log(Option.getOrUndefined(Option.none()))
1324
- * // Output: undefined
1229
+ * Option.getOrUndefined(Option.some(1)) // => 1
1230
+ * Option.getOrUndefined(Option.none()) // => undefined
1325
1231
  * ```
1326
1232
  *
1327
1233
  * @see {@link getOrNull} to return `null` instead
@@ -1346,16 +1252,13 @@ export const getOrUndefined: <A>(self: Option<A>) => A | undefined = getOrElse(c
1346
1252
  *
1347
1253
  * **Example** (Lifting JSON.parse)
1348
1254
  *
1349
- * ```ts
1255
+ * ```ts import.meta.vitest
1350
1256
  * import { Option } from "effect"
1351
1257
  *
1352
1258
  * const parse = Option.liftThrowable(JSON.parse)
1353
1259
  *
1354
- * console.log(parse("1"))
1355
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
1356
- *
1357
- * console.log(parse(""))
1358
- * // Output: { _id: 'Option', _tag: 'None' }
1260
+ * parse("1") // => Option.some(1)
1261
+ * parse("") // => Option.none()
1359
1262
  * ```
1360
1263
  *
1361
1264
  * @see {@link liftNullishOr} for nullable-returning functions
@@ -1389,14 +1292,16 @@ export const liftThrowable = <A extends ReadonlyArray<unknown>, B>(
1389
1292
  *
1390
1293
  * **Example** (Throwing a custom error)
1391
1294
  *
1392
- * ```ts
1393
- * import { Option } from "effect"
1295
+ * ```ts import.meta.vitest
1296
+ * import { Option, Result } from "effect"
1394
1297
  *
1395
- * console.log(Option.getOrThrowWith(Option.some(1), () => new Error("missing")))
1396
- * // Output: 1
1298
+ * Option.getOrThrowWith(Option.some(1), () => new Error("missing")) // => 1
1397
1299
  *
1398
- * Option.getOrThrowWith(Option.none(), () => new Error("missing"))
1399
- * // throws Error: missing
1300
+ * const failure = Result.try({
1301
+ * try: () => Option.getOrThrowWith(Option.none(), () => new Error("missing")),
1302
+ * catch: (error) => (error as Error).message
1303
+ * })
1304
+ * Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "missing"
1400
1305
  * ```
1401
1306
  *
1402
1307
  * @see {@link getOrThrow} for a version with a default error
@@ -1421,14 +1326,16 @@ export const getOrThrowWith: {
1421
1326
  *
1422
1327
  * **Example** (Throwing a custom error)
1423
1328
  *
1424
- * ```ts
1425
- * import { Option } from "effect"
1329
+ * ```ts import.meta.vitest
1330
+ * import { Option, Result } from "effect"
1426
1331
  *
1427
- * console.log(Option.getOrThrowWith(Option.some(1), () => new Error("missing")))
1428
- * // Output: 1
1332
+ * Option.getOrThrowWith(Option.some(1), () => new Error("missing")) // => 1
1429
1333
  *
1430
- * Option.getOrThrowWith(Option.none(), () => new Error("missing"))
1431
- * // throws Error: missing
1334
+ * const failure = Result.try({
1335
+ * try: () => Option.getOrThrowWith(Option.none(), () => new Error("missing")),
1336
+ * catch: (error) => (error as Error).message
1337
+ * })
1338
+ * Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "missing"
1432
1339
  * ```
1433
1340
  *
1434
1341
  * @see {@link getOrThrow} for a version with a default error
@@ -1453,14 +1360,16 @@ export const getOrThrowWith: {
1453
1360
  *
1454
1361
  * **Example** (Throwing a custom error)
1455
1362
  *
1456
- * ```ts
1457
- * import { Option } from "effect"
1363
+ * ```ts import.meta.vitest
1364
+ * import { Option, Result } from "effect"
1458
1365
  *
1459
- * console.log(Option.getOrThrowWith(Option.some(1), () => new Error("missing")))
1460
- * // Output: 1
1366
+ * Option.getOrThrowWith(Option.some(1), () => new Error("missing")) // => 1
1461
1367
  *
1462
- * Option.getOrThrowWith(Option.none(), () => new Error("missing"))
1463
- * // throws Error: missing
1368
+ * const failure = Result.try({
1369
+ * try: () => Option.getOrThrowWith(Option.none(), () => new Error("missing")),
1370
+ * catch: (error) => (error as Error).message
1371
+ * })
1372
+ * Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "missing"
1464
1373
  * ```
1465
1374
  *
1466
1375
  * @see {@link getOrThrow} for a version with a default error
@@ -1492,14 +1401,16 @@ export const getOrThrowWith: {
1492
1401
  *
1493
1402
  * **Example** (Throwing a default error)
1494
1403
  *
1495
- * ```ts
1496
- * import { Option } from "effect"
1404
+ * ```ts import.meta.vitest
1405
+ * import { Option, Result } from "effect"
1497
1406
  *
1498
- * console.log(Option.getOrThrow(Option.some(1)))
1499
- * // Output: 1
1407
+ * Option.getOrThrow(Option.some(1)) // => 1
1500
1408
  *
1501
- * Option.getOrThrow(Option.none())
1502
- * // throws Error: getOrThrow called on a None
1409
+ * const failure = Result.try({
1410
+ * try: () => Option.getOrThrow(Option.none()),
1411
+ * catch: (error) => (error as Error).message
1412
+ * })
1413
+ * Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "getOrThrow called on a None"
1503
1414
  * ```
1504
1415
  *
1505
1416
  * @see {@link getOrThrowWith} for a custom error
@@ -1526,14 +1437,11 @@ export const getOrThrow: <A>(self: Option<A>) => A = getOrThrowWith(() => new Er
1526
1437
  *
1527
1438
  * **Example** (Mapping over an Option)
1528
1439
  *
1529
- * ```ts
1440
+ * ```ts import.meta.vitest
1530
1441
  * import { Option } from "effect"
1531
1442
  *
1532
- * console.log(Option.map(Option.some(2), (n) => n * 2))
1533
- * // Output: { _id: 'Option', _tag: 'Some', value: 4 }
1534
- *
1535
- * console.log(Option.map(Option.none(), (n: number) => n * 2))
1536
- * // Output: { _id: 'Option', _tag: 'None' }
1443
+ * Option.map(Option.some(2), (n) => n * 2) // => Option.some(4)
1444
+ * Option.map(Option.none(), (n: number) => n * 2) // => Option.none()
1537
1445
  * ```
1538
1446
  *
1539
1447
  * @see {@link flatMap} when `f` returns an `Option`
@@ -1559,14 +1467,11 @@ export const map: {
1559
1467
  *
1560
1468
  * **Example** (Mapping over an Option)
1561
1469
  *
1562
- * ```ts
1470
+ * ```ts import.meta.vitest
1563
1471
  * import { Option } from "effect"
1564
1472
  *
1565
- * console.log(Option.map(Option.some(2), (n) => n * 2))
1566
- * // Output: { _id: 'Option', _tag: 'Some', value: 4 }
1567
- *
1568
- * console.log(Option.map(Option.none(), (n: number) => n * 2))
1569
- * // Output: { _id: 'Option', _tag: 'None' }
1473
+ * Option.map(Option.some(2), (n) => n * 2) // => Option.some(4)
1474
+ * Option.map(Option.none(), (n: number) => n * 2) // => Option.none()
1570
1475
  * ```
1571
1476
  *
1572
1477
  * @see {@link flatMap} when `f` returns an `Option`
@@ -1592,14 +1497,11 @@ export const map: {
1592
1497
  *
1593
1498
  * **Example** (Mapping over an Option)
1594
1499
  *
1595
- * ```ts
1500
+ * ```ts import.meta.vitest
1596
1501
  * import { Option } from "effect"
1597
1502
  *
1598
- * console.log(Option.map(Option.some(2), (n) => n * 2))
1599
- * // Output: { _id: 'Option', _tag: 'Some', value: 4 }
1600
- *
1601
- * console.log(Option.map(Option.none(), (n: number) => n * 2))
1602
- * // Output: { _id: 'Option', _tag: 'None' }
1503
+ * Option.map(Option.some(2), (n) => n * 2) // => Option.some(4)
1504
+ * Option.map(Option.none(), (n: number) => n * 2) // => Option.none()
1603
1505
  * ```
1604
1506
  *
1605
1507
  * @see {@link flatMap} when `f` returns an `Option`
@@ -1624,14 +1526,11 @@ export const map: {
1624
1526
  *
1625
1527
  * **Example** (Replacing a value)
1626
1528
  *
1627
- * ```ts
1529
+ * ```ts import.meta.vitest
1628
1530
  * import { Option } from "effect"
1629
1531
  *
1630
- * console.log(Option.as(Option.some(42), "new value"))
1631
- * // Output: { _id: 'Option', _tag: 'Some', value: 'new value' }
1632
- *
1633
- * console.log(Option.as(Option.none(), "new value"))
1634
- * // Output: { _id: 'Option', _tag: 'None' }
1532
+ * Option.as(Option.some(42), "new value") // => Option.some("new value")
1533
+ * Option.as(Option.none(), "new value") // => Option.none()
1635
1534
  * ```
1636
1535
  *
1637
1536
  * @see {@link asVoid} to replace with `undefined`
@@ -1651,14 +1550,11 @@ export const as: {
1651
1550
  *
1652
1551
  * **Example** (Replacing a value)
1653
1552
  *
1654
- * ```ts
1553
+ * ```ts import.meta.vitest
1655
1554
  * import { Option } from "effect"
1656
1555
  *
1657
- * console.log(Option.as(Option.some(42), "new value"))
1658
- * // Output: { _id: 'Option', _tag: 'Some', value: 'new value' }
1659
- *
1660
- * console.log(Option.as(Option.none(), "new value"))
1661
- * // Output: { _id: 'Option', _tag: 'None' }
1556
+ * Option.as(Option.some(42), "new value") // => Option.some("new value")
1557
+ * Option.as(Option.none(), "new value") // => Option.none()
1662
1558
  * ```
1663
1559
  *
1664
1560
  * @see {@link asVoid} to replace with `undefined`
@@ -1678,14 +1574,11 @@ export const as: {
1678
1574
  *
1679
1575
  * **Example** (Replacing a value)
1680
1576
  *
1681
- * ```ts
1577
+ * ```ts import.meta.vitest
1682
1578
  * import { Option } from "effect"
1683
1579
  *
1684
- * console.log(Option.as(Option.some(42), "new value"))
1685
- * // Output: { _id: 'Option', _tag: 'Some', value: 'new value' }
1686
- *
1687
- * console.log(Option.as(Option.none(), "new value"))
1688
- * // Output: { _id: 'Option', _tag: 'None' }
1580
+ * Option.as(Option.some(42), "new value") // => Option.some("new value")
1581
+ * Option.as(Option.none(), "new value") // => Option.none()
1689
1582
  * ```
1690
1583
  *
1691
1584
  * @see {@link asVoid} to replace with `undefined`
@@ -1708,14 +1601,11 @@ export const as: {
1708
1601
  *
1709
1602
  * **Example** (Voiding the value)
1710
1603
  *
1711
- * ```ts
1604
+ * ```ts import.meta.vitest
1712
1605
  * import { Option } from "effect"
1713
1606
  *
1714
- * console.log(Option.asVoid(Option.some(42)))
1715
- * // Output: { _id: 'Option', _tag: 'Some', value: undefined }
1716
- *
1717
- * console.log(Option.asVoid(Option.none()))
1718
- * // Output: { _id: 'Option', _tag: 'None' }
1607
+ * Option.asVoid(Option.some(42)) // => Option.some(undefined)
1608
+ * Option.asVoid(Option.none()) // => Option.none()
1719
1609
  * ```
1720
1610
  *
1721
1611
  * @see {@link as} to replace with a specific constant
@@ -1736,11 +1626,10 @@ export {
1736
1626
  *
1737
1627
  * **Example** (Referencing Option.void)
1738
1628
  *
1739
- * ```ts
1629
+ * ```ts import.meta.vitest
1740
1630
  * import { Option } from "effect"
1741
1631
  *
1742
- * console.log(Option.void)
1743
- * // Output: { _id: 'Option', _tag: 'Some', value: undefined }
1632
+ * Option.void // => Option.some(undefined)
1744
1633
  * ```
1745
1634
  *
1746
1635
  * @see {@link asVoid} to convert an existing `Option` to `Option<void>`
@@ -1768,7 +1657,7 @@ export {
1768
1657
  *
1769
1658
  * **Example** (Chaining optional lookups)
1770
1659
  *
1771
- * ```ts
1660
+ * ```ts import.meta.vitest
1772
1661
  * import { Option } from "effect"
1773
1662
  *
1774
1663
  * interface User {
@@ -1781,12 +1670,9 @@ export {
1781
1670
  * address: Option.some({ street: Option.some("123 Main St") })
1782
1671
  * }
1783
1672
  *
1784
- * const street = user.address.pipe(
1673
+ * user.address.pipe(
1785
1674
  * Option.flatMap((addr) => addr.street)
1786
- * )
1787
- *
1788
- * console.log(street)
1789
- * // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }
1675
+ * ) // => Option.some("123 Main St")
1790
1676
  * ```
1791
1677
  *
1792
1678
  * @see {@link map} when `f` returns a plain value
@@ -1814,7 +1700,7 @@ export const flatMap: {
1814
1700
  *
1815
1701
  * **Example** (Chaining optional lookups)
1816
1702
  *
1817
- * ```ts
1703
+ * ```ts import.meta.vitest
1818
1704
  * import { Option } from "effect"
1819
1705
  *
1820
1706
  * interface User {
@@ -1827,12 +1713,9 @@ export const flatMap: {
1827
1713
  * address: Option.some({ street: Option.some("123 Main St") })
1828
1714
  * }
1829
1715
  *
1830
- * const street = user.address.pipe(
1716
+ * user.address.pipe(
1831
1717
  * Option.flatMap((addr) => addr.street)
1832
- * )
1833
- *
1834
- * console.log(street)
1835
- * // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }
1718
+ * ) // => Option.some("123 Main St")
1836
1719
  * ```
1837
1720
  *
1838
1721
  * @see {@link map} when `f` returns a plain value
@@ -1860,7 +1743,7 @@ export const flatMap: {
1860
1743
  *
1861
1744
  * **Example** (Chaining optional lookups)
1862
1745
  *
1863
- * ```ts
1746
+ * ```ts import.meta.vitest
1864
1747
  * import { Option } from "effect"
1865
1748
  *
1866
1749
  * interface User {
@@ -1873,12 +1756,9 @@ export const flatMap: {
1873
1756
  * address: Option.some({ street: Option.some("123 Main St") })
1874
1757
  * }
1875
1758
  *
1876
- * const street = user.address.pipe(
1759
+ * user.address.pipe(
1877
1760
  * Option.flatMap((addr) => addr.street)
1878
- * )
1879
- *
1880
- * console.log(street)
1881
- * // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }
1761
+ * ) // => Option.some("123 Main St")
1882
1762
  * ```
1883
1763
  *
1884
1764
  * @see {@link map} when `f` returns a plain value
@@ -1912,20 +1792,17 @@ export const flatMap: {
1912
1792
  *
1913
1793
  * **Example** (Chaining with andThen)
1914
1794
  *
1915
- * ```ts
1795
+ * ```ts import.meta.vitest
1916
1796
  * import { Option } from "effect"
1917
1797
  *
1918
1798
  * // Chain with a function returning Option
1919
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
1920
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
1799
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
1921
1800
  *
1922
1801
  * // Chain with a static value
1923
- * console.log(Option.andThen(Option.some(5), "hello"))
1924
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
1802
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
1925
1803
  *
1926
1804
  * // Chain with None - skips
1927
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
1928
- * // Output: { _id: 'Option', _tag: 'None' }
1805
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
1929
1806
  * ```
1930
1807
  *
1931
1808
  * @see {@link flatMap} for the standard monadic bind
@@ -1953,20 +1830,17 @@ export const andThen: {
1953
1830
  *
1954
1831
  * **Example** (Chaining with andThen)
1955
1832
  *
1956
- * ```ts
1833
+ * ```ts import.meta.vitest
1957
1834
  * import { Option } from "effect"
1958
1835
  *
1959
1836
  * // Chain with a function returning Option
1960
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
1961
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
1837
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
1962
1838
  *
1963
1839
  * // Chain with a static value
1964
- * console.log(Option.andThen(Option.some(5), "hello"))
1965
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
1840
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
1966
1841
  *
1967
1842
  * // Chain with None - skips
1968
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
1969
- * // Output: { _id: 'Option', _tag: 'None' }
1843
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
1970
1844
  * ```
1971
1845
  *
1972
1846
  * @see {@link flatMap} for the standard monadic bind
@@ -1994,20 +1868,17 @@ export const andThen: {
1994
1868
  *
1995
1869
  * **Example** (Chaining with andThen)
1996
1870
  *
1997
- * ```ts
1871
+ * ```ts import.meta.vitest
1998
1872
  * import { Option } from "effect"
1999
1873
  *
2000
1874
  * // Chain with a function returning Option
2001
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
2002
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
1875
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
2003
1876
  *
2004
1877
  * // Chain with a static value
2005
- * console.log(Option.andThen(Option.some(5), "hello"))
2006
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
1878
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
2007
1879
  *
2008
1880
  * // Chain with None - skips
2009
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
2010
- * // Output: { _id: 'Option', _tag: 'None' }
1881
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
2011
1882
  * ```
2012
1883
  *
2013
1884
  * @see {@link flatMap} for the standard monadic bind
@@ -2035,20 +1906,17 @@ export const andThen: {
2035
1906
  *
2036
1907
  * **Example** (Chaining with andThen)
2037
1908
  *
2038
- * ```ts
1909
+ * ```ts import.meta.vitest
2039
1910
  * import { Option } from "effect"
2040
1911
  *
2041
1912
  * // Chain with a function returning Option
2042
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
2043
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
1913
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
2044
1914
  *
2045
1915
  * // Chain with a static value
2046
- * console.log(Option.andThen(Option.some(5), "hello"))
2047
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
1916
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
2048
1917
  *
2049
1918
  * // Chain with None - skips
2050
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
2051
- * // Output: { _id: 'Option', _tag: 'None' }
1919
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
2052
1920
  * ```
2053
1921
  *
2054
1922
  * @see {@link flatMap} for the standard monadic bind
@@ -2076,20 +1944,17 @@ export const andThen: {
2076
1944
  *
2077
1945
  * **Example** (Chaining with andThen)
2078
1946
  *
2079
- * ```ts
1947
+ * ```ts import.meta.vitest
2080
1948
  * import { Option } from "effect"
2081
1949
  *
2082
1950
  * // Chain with a function returning Option
2083
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
2084
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
1951
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
2085
1952
  *
2086
1953
  * // Chain with a static value
2087
- * console.log(Option.andThen(Option.some(5), "hello"))
2088
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
1954
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
2089
1955
  *
2090
1956
  * // Chain with None - skips
2091
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
2092
- * // Output: { _id: 'Option', _tag: 'None' }
1957
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
2093
1958
  * ```
2094
1959
  *
2095
1960
  * @see {@link flatMap} for the standard monadic bind
@@ -2117,20 +1982,17 @@ export const andThen: {
2117
1982
  *
2118
1983
  * **Example** (Chaining with andThen)
2119
1984
  *
2120
- * ```ts
1985
+ * ```ts import.meta.vitest
2121
1986
  * import { Option } from "effect"
2122
1987
  *
2123
1988
  * // Chain with a function returning Option
2124
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
2125
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
1989
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
2126
1990
  *
2127
1991
  * // Chain with a static value
2128
- * console.log(Option.andThen(Option.some(5), "hello"))
2129
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
1992
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
2130
1993
  *
2131
1994
  * // Chain with None - skips
2132
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
2133
- * // Output: { _id: 'Option', _tag: 'None' }
1995
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
2134
1996
  * ```
2135
1997
  *
2136
1998
  * @see {@link flatMap} for the standard monadic bind
@@ -2158,20 +2020,17 @@ export const andThen: {
2158
2020
  *
2159
2021
  * **Example** (Chaining with andThen)
2160
2022
  *
2161
- * ```ts
2023
+ * ```ts import.meta.vitest
2162
2024
  * import { Option } from "effect"
2163
2025
  *
2164
2026
  * // Chain with a function returning Option
2165
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
2166
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
2027
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
2167
2028
  *
2168
2029
  * // Chain with a static value
2169
- * console.log(Option.andThen(Option.some(5), "hello"))
2170
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
2030
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
2171
2031
  *
2172
2032
  * // Chain with None - skips
2173
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
2174
- * // Output: { _id: 'Option', _tag: 'None' }
2033
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
2175
2034
  * ```
2176
2035
  *
2177
2036
  * @see {@link flatMap} for the standard monadic bind
@@ -2199,20 +2058,17 @@ export const andThen: {
2199
2058
  *
2200
2059
  * **Example** (Chaining with andThen)
2201
2060
  *
2202
- * ```ts
2061
+ * ```ts import.meta.vitest
2203
2062
  * import { Option } from "effect"
2204
2063
  *
2205
2064
  * // Chain with a function returning Option
2206
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
2207
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
2065
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
2208
2066
  *
2209
2067
  * // Chain with a static value
2210
- * console.log(Option.andThen(Option.some(5), "hello"))
2211
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
2068
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
2212
2069
  *
2213
2070
  * // Chain with None - skips
2214
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
2215
- * // Output: { _id: 'Option', _tag: 'None' }
2071
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
2216
2072
  * ```
2217
2073
  *
2218
2074
  * @see {@link flatMap} for the standard monadic bind
@@ -2240,20 +2096,17 @@ export const andThen: {
2240
2096
  *
2241
2097
  * **Example** (Chaining with andThen)
2242
2098
  *
2243
- * ```ts
2099
+ * ```ts import.meta.vitest
2244
2100
  * import { Option } from "effect"
2245
2101
  *
2246
2102
  * // Chain with a function returning Option
2247
- * console.log(Option.andThen(Option.some(5), (x) => Option.some(x * 2)))
2248
- * // Output: { _id: 'Option', _tag: 'Some', value: 10 }
2103
+ * Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
2249
2104
  *
2250
2105
  * // Chain with a static value
2251
- * console.log(Option.andThen(Option.some(5), "hello"))
2252
- * // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
2106
+ * Option.andThen(Option.some(5), "hello") // => Option.some("hello")
2253
2107
  *
2254
2108
  * // Chain with None - skips
2255
- * console.log(Option.andThen(Option.none(), (x) => Option.some(x * 2)))
2256
- * // Output: { _id: 'Option', _tag: 'None' }
2109
+ * Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
2257
2110
  * ```
2258
2111
  *
2259
2112
  * @see {@link flatMap} for the standard monadic bind
@@ -2288,7 +2141,7 @@ export const andThen: {
2288
2141
  *
2289
2142
  * **Example** (Navigating optional properties)
2290
2143
  *
2291
- * ```ts
2144
+ * ```ts import.meta.vitest
2292
2145
  * import { Option } from "effect"
2293
2146
  *
2294
2147
  * interface Employee {
@@ -2299,12 +2152,9 @@ export const andThen: {
2299
2152
  * company: { address: { street: { name: "high street" } } }
2300
2153
  * }
2301
2154
  *
2302
- * console.log(
2303
- * Option.some(emp).pipe(
2304
- * Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
2305
- * )
2306
- * )
2307
- * // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }
2155
+ * Option.some(emp).pipe(
2156
+ * Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
2157
+ * ) // => Option.some("high street")
2308
2158
  * ```
2309
2159
  *
2310
2160
  * @see {@link flatMap} when the function already returns `Option`
@@ -2330,7 +2180,7 @@ export const flatMapNullishOr: {
2330
2180
  *
2331
2181
  * **Example** (Navigating optional properties)
2332
2182
  *
2333
- * ```ts
2183
+ * ```ts import.meta.vitest
2334
2184
  * import { Option } from "effect"
2335
2185
  *
2336
2186
  * interface Employee {
@@ -2341,12 +2191,9 @@ export const flatMapNullishOr: {
2341
2191
  * company: { address: { street: { name: "high street" } } }
2342
2192
  * }
2343
2193
  *
2344
- * console.log(
2345
- * Option.some(emp).pipe(
2346
- * Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
2347
- * )
2348
- * )
2349
- * // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }
2194
+ * Option.some(emp).pipe(
2195
+ * Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
2196
+ * ) // => Option.some("high street")
2350
2197
  * ```
2351
2198
  *
2352
2199
  * @see {@link flatMap} when the function already returns `Option`
@@ -2372,7 +2219,7 @@ export const flatMapNullishOr: {
2372
2219
  *
2373
2220
  * **Example** (Navigating optional properties)
2374
2221
  *
2375
- * ```ts
2222
+ * ```ts import.meta.vitest
2376
2223
  * import { Option } from "effect"
2377
2224
  *
2378
2225
  * interface Employee {
@@ -2383,12 +2230,9 @@ export const flatMapNullishOr: {
2383
2230
  * company: { address: { street: { name: "high street" } } }
2384
2231
  * }
2385
2232
  *
2386
- * console.log(
2387
- * Option.some(emp).pipe(
2388
- * Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
2389
- * )
2390
- * )
2391
- * // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }
2233
+ * Option.some(emp).pipe(
2234
+ * Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
2235
+ * ) // => Option.some("high street")
2392
2236
  * ```
2393
2237
  *
2394
2238
  * @see {@link flatMap} when the function already returns `Option`
@@ -2419,14 +2263,11 @@ export const flatMapNullishOr: {
2419
2263
  *
2420
2264
  * **Example** (Flattening nested Options)
2421
2265
  *
2422
- * ```ts
2266
+ * ```ts import.meta.vitest
2423
2267
  * import { Option } from "effect"
2424
2268
  *
2425
- * console.log(Option.flatten(Option.some(Option.some("value"))))
2426
- * // Output: { _id: 'Option', _tag: 'Some', value: 'value' }
2427
- *
2428
- * console.log(Option.flatten(Option.some(Option.none())))
2429
- * // Output: { _id: 'Option', _tag: 'None' }
2269
+ * Option.flatten(Option.some(Option.some("value"))) // => Option.some("value")
2270
+ * Option.flatten(Option.some(Option.none())) // => Option.none()
2430
2271
  * ```
2431
2272
  *
2432
2273
  * @see {@link flatMap} which is `map` + `flatten`
@@ -2451,14 +2292,11 @@ export const flatten: <A>(self: Option<Option<A>>) => Option<A> = flatMap(identi
2451
2292
  *
2452
2293
  * **Example** (Keeping the second value)
2453
2294
  *
2454
- * ```ts
2295
+ * ```ts import.meta.vitest
2455
2296
  * import { Option } from "effect"
2456
2297
  *
2457
- * console.log(Option.zipRight(Option.some(1), Option.some("hello")))
2458
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
2459
- *
2460
- * console.log(Option.zipRight(Option.none(), Option.some("hello")))
2461
- * // Output: { _id: 'Option', _tag: 'None' }
2298
+ * Option.zipRight(Option.some(1), Option.some("hello")) // => Option.some("hello")
2299
+ * Option.zipRight(Option.none(), Option.some("hello")) // => Option.none()
2462
2300
  * ```
2463
2301
  *
2464
2302
  * @see {@link zipLeft} to keep the first value instead
@@ -2483,14 +2321,11 @@ export const zipRight: {
2483
2321
  *
2484
2322
  * **Example** (Keeping the second value)
2485
2323
  *
2486
- * ```ts
2324
+ * ```ts import.meta.vitest
2487
2325
  * import { Option } from "effect"
2488
2326
  *
2489
- * console.log(Option.zipRight(Option.some(1), Option.some("hello")))
2490
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
2491
- *
2492
- * console.log(Option.zipRight(Option.none(), Option.some("hello")))
2493
- * // Output: { _id: 'Option', _tag: 'None' }
2327
+ * Option.zipRight(Option.some(1), Option.some("hello")) // => Option.some("hello")
2328
+ * Option.zipRight(Option.none(), Option.some("hello")) // => Option.none()
2494
2329
  * ```
2495
2330
  *
2496
2331
  * @see {@link zipLeft} to keep the first value instead
@@ -2515,14 +2350,11 @@ export const zipRight: {
2515
2350
  *
2516
2351
  * **Example** (Keeping the second value)
2517
2352
  *
2518
- * ```ts
2353
+ * ```ts import.meta.vitest
2519
2354
  * import { Option } from "effect"
2520
2355
  *
2521
- * console.log(Option.zipRight(Option.some(1), Option.some("hello")))
2522
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
2523
- *
2524
- * console.log(Option.zipRight(Option.none(), Option.some("hello")))
2525
- * // Output: { _id: 'Option', _tag: 'None' }
2356
+ * Option.zipRight(Option.some(1), Option.some("hello")) // => Option.some("hello")
2357
+ * Option.zipRight(Option.none(), Option.some("hello")) // => Option.none()
2526
2358
  * ```
2527
2359
  *
2528
2360
  * @see {@link zipLeft} to keep the first value instead
@@ -2549,14 +2381,11 @@ export const zipRight: {
2549
2381
  *
2550
2382
  * **Example** (Keeping the first value)
2551
2383
  *
2552
- * ```ts
2384
+ * ```ts import.meta.vitest
2553
2385
  * import { Option } from "effect"
2554
2386
  *
2555
- * console.log(Option.zipLeft(Option.some("hello"), Option.some(1)))
2556
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
2557
- *
2558
- * console.log(Option.zipLeft(Option.some("hello"), Option.none()))
2559
- * // Output: { _id: 'Option', _tag: 'None' }
2387
+ * Option.zipLeft(Option.some("hello"), Option.some(1)) // => Option.some("hello")
2388
+ * Option.zipLeft(Option.some("hello"), Option.none()) // => Option.none()
2560
2389
  * ```
2561
2390
  *
2562
2391
  * @see {@link zipRight} to keep the second value instead
@@ -2581,14 +2410,11 @@ export const zipLeft: {
2581
2410
  *
2582
2411
  * **Example** (Keeping the first value)
2583
2412
  *
2584
- * ```ts
2413
+ * ```ts import.meta.vitest
2585
2414
  * import { Option } from "effect"
2586
2415
  *
2587
- * console.log(Option.zipLeft(Option.some("hello"), Option.some(1)))
2588
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
2589
- *
2590
- * console.log(Option.zipLeft(Option.some("hello"), Option.none()))
2591
- * // Output: { _id: 'Option', _tag: 'None' }
2416
+ * Option.zipLeft(Option.some("hello"), Option.some(1)) // => Option.some("hello")
2417
+ * Option.zipLeft(Option.some("hello"), Option.none()) // => Option.none()
2592
2418
  * ```
2593
2419
  *
2594
2420
  * @see {@link zipRight} to keep the second value instead
@@ -2613,14 +2439,11 @@ export const zipLeft: {
2613
2439
  *
2614
2440
  * **Example** (Keeping the first value)
2615
2441
  *
2616
- * ```ts
2442
+ * ```ts import.meta.vitest
2617
2443
  * import { Option } from "effect"
2618
2444
  *
2619
- * console.log(Option.zipLeft(Option.some("hello"), Option.some(1)))
2620
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
2621
- *
2622
- * console.log(Option.zipLeft(Option.some("hello"), Option.none()))
2623
- * // Output: { _id: 'Option', _tag: 'None' }
2445
+ * Option.zipLeft(Option.some("hello"), Option.some(1)) // => Option.some("hello")
2446
+ * Option.zipLeft(Option.some("hello"), Option.none()) // => Option.none()
2624
2447
  * ```
2625
2448
  *
2626
2449
  * @see {@link zipRight} to keep the second value instead
@@ -2648,7 +2471,7 @@ export const zipLeft: {
2648
2471
  *
2649
2472
  * **Example** (Composing parsers)
2650
2473
  *
2651
- * ```ts
2474
+ * ```ts import.meta.vitest
2652
2475
  * import { Option } from "effect"
2653
2476
  *
2654
2477
  * const parse = (s: string): Option.Option<number> =>
@@ -2659,11 +2482,8 @@ export const zipLeft: {
2659
2482
  *
2660
2483
  * const parseAndDouble = Option.composeK(parse, double)
2661
2484
  *
2662
- * console.log(parseAndDouble("42"))
2663
- * // Output: { _id: 'Option', _tag: 'Some', value: 84 }
2664
- *
2665
- * console.log(parseAndDouble("not a number"))
2666
- * // Output: { _id: 'Option', _tag: 'None' }
2485
+ * parseAndDouble("42") // => Option.some(84)
2486
+ * parseAndDouble("not a number") // => Option.none()
2667
2487
  * ```
2668
2488
  *
2669
2489
  * @see {@link flatMap} for single-step chaining
@@ -2688,7 +2508,7 @@ export const composeK: {
2688
2508
  *
2689
2509
  * **Example** (Composing parsers)
2690
2510
  *
2691
- * ```ts
2511
+ * ```ts import.meta.vitest
2692
2512
  * import { Option } from "effect"
2693
2513
  *
2694
2514
  * const parse = (s: string): Option.Option<number> =>
@@ -2699,11 +2519,8 @@ export const composeK: {
2699
2519
  *
2700
2520
  * const parseAndDouble = Option.composeK(parse, double)
2701
2521
  *
2702
- * console.log(parseAndDouble("42"))
2703
- * // Output: { _id: 'Option', _tag: 'Some', value: 84 }
2704
- *
2705
- * console.log(parseAndDouble("not a number"))
2706
- * // Output: { _id: 'Option', _tag: 'None' }
2522
+ * parseAndDouble("42") // => Option.some(84)
2523
+ * parseAndDouble("not a number") // => Option.none()
2707
2524
  * ```
2708
2525
  *
2709
2526
  * @see {@link flatMap} for single-step chaining
@@ -2728,7 +2545,7 @@ export const composeK: {
2728
2545
  *
2729
2546
  * **Example** (Composing parsers)
2730
2547
  *
2731
- * ```ts
2548
+ * ```ts import.meta.vitest
2732
2549
  * import { Option } from "effect"
2733
2550
  *
2734
2551
  * const parse = (s: string): Option.Option<number> =>
@@ -2739,11 +2556,8 @@ export const composeK: {
2739
2556
  *
2740
2557
  * const parseAndDouble = Option.composeK(parse, double)
2741
2558
  *
2742
- * console.log(parseAndDouble("42"))
2743
- * // Output: { _id: 'Option', _tag: 'Some', value: 84 }
2744
- *
2745
- * console.log(parseAndDouble("not a number"))
2746
- * // Output: { _id: 'Option', _tag: 'None' }
2559
+ * parseAndDouble("42") // => Option.some(84)
2560
+ * parseAndDouble("not a number") // => Option.none()
2747
2561
  * ```
2748
2562
  *
2749
2563
  * @see {@link flatMap} for single-step chaining
@@ -2771,17 +2585,14 @@ export const composeK: {
2771
2585
  *
2772
2586
  * **Example** (Validating without transforming)
2773
2587
  *
2774
- * ```ts
2588
+ * ```ts import.meta.vitest
2775
2589
  * import { Option } from "effect"
2776
2590
  *
2777
2591
  * const getInteger = (n: number) =>
2778
2592
  * Number.isInteger(n) ? Option.some(n) : Option.none()
2779
2593
  *
2780
- * console.log(Option.tap(Option.some(1), getInteger))
2781
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
2782
- *
2783
- * console.log(Option.tap(Option.some(1.14), getInteger))
2784
- * // Output: { _id: 'Option', _tag: 'None' }
2594
+ * Option.tap(Option.some(1), getInteger) // => Option.some(1)
2595
+ * Option.tap(Option.some(1.14), getInteger) // => Option.none()
2785
2596
  * ```
2786
2597
  *
2787
2598
  * @see {@link flatMap} when you want to transform the value
@@ -2808,17 +2619,14 @@ export const tap: {
2808
2619
  *
2809
2620
  * **Example** (Validating without transforming)
2810
2621
  *
2811
- * ```ts
2622
+ * ```ts import.meta.vitest
2812
2623
  * import { Option } from "effect"
2813
2624
  *
2814
2625
  * const getInteger = (n: number) =>
2815
2626
  * Number.isInteger(n) ? Option.some(n) : Option.none()
2816
2627
  *
2817
- * console.log(Option.tap(Option.some(1), getInteger))
2818
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
2819
- *
2820
- * console.log(Option.tap(Option.some(1.14), getInteger))
2821
- * // Output: { _id: 'Option', _tag: 'None' }
2628
+ * Option.tap(Option.some(1), getInteger) // => Option.some(1)
2629
+ * Option.tap(Option.some(1.14), getInteger) // => Option.none()
2822
2630
  * ```
2823
2631
  *
2824
2632
  * @see {@link flatMap} when you want to transform the value
@@ -2845,17 +2653,14 @@ export const tap: {
2845
2653
  *
2846
2654
  * **Example** (Validating without transforming)
2847
2655
  *
2848
- * ```ts
2656
+ * ```ts import.meta.vitest
2849
2657
  * import { Option } from "effect"
2850
2658
  *
2851
2659
  * const getInteger = (n: number) =>
2852
2660
  * Number.isInteger(n) ? Option.some(n) : Option.none()
2853
2661
  *
2854
- * console.log(Option.tap(Option.some(1), getInteger))
2855
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
2856
- *
2857
- * console.log(Option.tap(Option.some(1.14), getInteger))
2858
- * // Output: { _id: 'Option', _tag: 'None' }
2662
+ * Option.tap(Option.some(1), getInteger) // => Option.some(1)
2663
+ * Option.tap(Option.some(1.14), getInteger) // => Option.none()
2859
2664
  * ```
2860
2665
  *
2861
2666
  * @see {@link flatMap} when you want to transform the value
@@ -2883,14 +2688,11 @@ export const tap: {
2883
2688
  *
2884
2689
  * **Example** (Pairing two Options)
2885
2690
  *
2886
- * ```ts
2691
+ * ```ts import.meta.vitest
2887
2692
  * import { Option } from "effect"
2888
2693
  *
2889
- * console.log(Option.product(Option.some("hello"), Option.some(42)))
2890
- * // Output: { _id: 'Option', _tag: 'Some', value: ['hello', 42] }
2891
- *
2892
- * console.log(Option.product(Option.none(), Option.some(42)))
2893
- * // Output: { _id: 'Option', _tag: 'None' }
2694
+ * Option.product(Option.some("hello"), Option.some(42)) // => Option.some(["hello", 42])
2695
+ * Option.product(Option.none(), Option.some(42)) // => Option.none()
2894
2696
  * ```
2895
2697
  *
2896
2698
  * @see {@link zipWith} to combine with a function instead of a tuple
@@ -2918,17 +2720,14 @@ export const product = <A, B>(self: Option<A>, that: Option<B>): Option<[A, B]>
2918
2720
  *
2919
2721
  * **Example** (Combining many Options)
2920
2722
  *
2921
- * ```ts
2723
+ * ```ts import.meta.vitest
2922
2724
  * import { Option } from "effect"
2923
2725
  *
2924
2726
  * const first = Option.some(1)
2925
2727
  * const rest = [Option.some(2), Option.some(3)]
2926
2728
  *
2927
- * console.log(Option.productMany(first, rest))
2928
- * // Output: { _id: 'Option', _tag: 'Some', value: [1, 2, 3] }
2929
- *
2930
- * console.log(Option.productMany(first, [Option.some(2), Option.none()]))
2931
- * // Output: { _id: 'Option', _tag: 'None' }
2729
+ * Option.productMany(first, rest) // => Option.some([1, 2, 3])
2730
+ * Option.productMany(first, [Option.some(2), Option.none()]) // => Option.none()
2932
2731
  * ```
2933
2732
  *
2934
2733
  * @see {@link product} for combining exactly two
@@ -2972,7 +2771,7 @@ export const productMany = <A>(
2972
2771
  *
2973
2772
  * **Example** (Combining a tuple and a struct)
2974
2773
  *
2975
- * ```ts
2774
+ * ```ts import.meta.vitest
2976
2775
  * import { Option } from "effect"
2977
2776
  *
2978
2777
  * const maybeName: Option.Option<string> = Option.some("John")
@@ -2980,17 +2779,11 @@ export const productMany = <A>(
2980
2779
  *
2981
2780
  * // ┌─── Option<[string, number]>
2982
2781
  * // ▼
2983
- * const tuple = Option.all([maybeName, maybeAge])
2984
- * console.log(tuple)
2985
- * // Output:
2986
- * // { _id: 'Option', _tag: 'Some', value: [ 'John', 25 ] }
2782
+ * const tuple = Option.all([maybeName, maybeAge]) // => Option.some(["John", 25])
2987
2783
  *
2988
2784
  * // ┌─── Option<{ name: string; age: number; }>
2989
2785
  * // ▼
2990
- * const struct = Option.all({ name: maybeName, age: maybeAge })
2991
- * console.log(struct)
2992
- * // Output:
2993
- * // { _id: 'Option', _tag: 'Some', value: { name: 'John', age: 25 } }
2786
+ * const struct = Option.all({ name: maybeName, age: maybeAge }) // => Option.some({ name: "John", age: 25 })
2994
2787
  * ```
2995
2788
  *
2996
2789
  * @see {@link product} for combining exactly two
@@ -3046,18 +2839,14 @@ export const all: <const I extends Iterable<Option<any>> | Record<string, Option
3046
2839
  *
3047
2840
  * **Example** (Combining with a function)
3048
2841
  *
3049
- * ```ts
2842
+ * ```ts import.meta.vitest
3050
2843
  * import { Option } from "effect"
3051
2844
  *
3052
- * const person = Option.zipWith(
2845
+ * Option.zipWith(
3053
2846
  * Option.some("John"),
3054
2847
  * Option.some(25),
3055
2848
  * (name, age) => ({ name: name.toUpperCase(), age })
3056
- * )
3057
- *
3058
- * console.log(person)
3059
- * // Output:
3060
- * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
2849
+ * ) // => Option.some({ name: "JOHN", age: 25 })
3061
2850
  * ```
3062
2851
  *
3063
2852
  * @see {@link product} to combine into a tuple instead
@@ -3082,18 +2871,14 @@ export const zipWith: {
3082
2871
  *
3083
2872
  * **Example** (Combining with a function)
3084
2873
  *
3085
- * ```ts
2874
+ * ```ts import.meta.vitest
3086
2875
  * import { Option } from "effect"
3087
2876
  *
3088
- * const person = Option.zipWith(
2877
+ * Option.zipWith(
3089
2878
  * Option.some("John"),
3090
2879
  * Option.some(25),
3091
2880
  * (name, age) => ({ name: name.toUpperCase(), age })
3092
- * )
3093
- *
3094
- * console.log(person)
3095
- * // Output:
3096
- * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
2881
+ * ) // => Option.some({ name: "JOHN", age: 25 })
3097
2882
  * ```
3098
2883
  *
3099
2884
  * @see {@link product} to combine into a tuple instead
@@ -3118,18 +2903,14 @@ export const zipWith: {
3118
2903
  *
3119
2904
  * **Example** (Combining with a function)
3120
2905
  *
3121
- * ```ts
2906
+ * ```ts import.meta.vitest
3122
2907
  * import { Option } from "effect"
3123
2908
  *
3124
- * const person = Option.zipWith(
2909
+ * Option.zipWith(
3125
2910
  * Option.some("John"),
3126
2911
  * Option.some(25),
3127
2912
  * (name, age) => ({ name: name.toUpperCase(), age })
3128
- * )
3129
- *
3130
- * console.log(person)
3131
- * // Output:
3132
- * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
2913
+ * ) // => Option.some({ name: "JOHN", age: 25 })
3133
2914
  * ```
3134
2915
  *
3135
2916
  * @see {@link product} to combine into a tuple instead
@@ -3161,16 +2942,15 @@ export const zipWith: {
3161
2942
  *
3162
2943
  * **Example** (Summing present values)
3163
2944
  *
3164
- * ```ts
2945
+ * ```ts import.meta.vitest
3165
2946
  * import { Option, pipe } from "effect"
3166
2947
  *
3167
2948
  * const items = [Option.some(1), Option.none(), Option.some(2), Option.none()]
3168
2949
  *
3169
- * console.log(pipe(items, Option.reduceCompact(0, (b, a) => b + a)))
3170
- * // Output: 3
2950
+ * pipe(items, Option.reduceCompact(0, (b, a) => b + a)) // => 3
3171
2951
  * ```
3172
2952
  *
3173
- * @category reducing
2953
+ * @category folding
3174
2954
  * @since 2.0.0
3175
2955
  */
3176
2956
  export const reduceCompact: {
@@ -3190,16 +2970,15 @@ export const reduceCompact: {
3190
2970
  *
3191
2971
  * **Example** (Summing present values)
3192
2972
  *
3193
- * ```ts
2973
+ * ```ts import.meta.vitest
3194
2974
  * import { Option, pipe } from "effect"
3195
2975
  *
3196
2976
  * const items = [Option.some(1), Option.none(), Option.some(2), Option.none()]
3197
2977
  *
3198
- * console.log(pipe(items, Option.reduceCompact(0, (b, a) => b + a)))
3199
- * // Output: 3
2978
+ * pipe(items, Option.reduceCompact(0, (b, a) => b + a)) // => 3
3200
2979
  * ```
3201
2980
  *
3202
- * @category reducing
2981
+ * @category folding
3203
2982
  * @since 2.0.0
3204
2983
  */
3205
2984
  <B, A>(b: B, f: (b: B, a: A) => B): (self: Iterable<Option<A>>) => B
@@ -3219,16 +2998,15 @@ export const reduceCompact: {
3219
2998
  *
3220
2999
  * **Example** (Summing present values)
3221
3000
  *
3222
- * ```ts
3001
+ * ```ts import.meta.vitest
3223
3002
  * import { Option, pipe } from "effect"
3224
3003
  *
3225
3004
  * const items = [Option.some(1), Option.none(), Option.some(2), Option.none()]
3226
3005
  *
3227
- * console.log(pipe(items, Option.reduceCompact(0, (b, a) => b + a)))
3228
- * // Output: 3
3006
+ * pipe(items, Option.reduceCompact(0, (b, a) => b + a)) // => 3
3229
3007
  * ```
3230
3008
  *
3231
- * @category reducing
3009
+ * @category folding
3232
3010
  * @since 2.0.0
3233
3011
  */
3234
3012
  <A, B>(self: Iterable<Option<A>>, b: B, f: (b: B, a: A) => B): B
@@ -3260,14 +3038,11 @@ export const reduceCompact: {
3260
3038
  *
3261
3039
  * **Example** (Converting to an array)
3262
3040
  *
3263
- * ```ts
3041
+ * ```ts import.meta.vitest
3264
3042
  * import { Option } from "effect"
3265
3043
  *
3266
- * console.log(Option.toArray(Option.some(1)))
3267
- * // Output: [1]
3268
- *
3269
- * console.log(Option.toArray(Option.none()))
3270
- * // Output: []
3044
+ * Option.toArray(Option.some(1)) // => [1]
3045
+ * Option.toArray(Option.none()) // => []
3271
3046
  * ```
3272
3047
  *
3273
3048
  * @see {@link fromIterable} for the inverse direction
@@ -3293,7 +3068,7 @@ export const toArray = <A>(self: Option<A>): Array<A> => isNone(self) ? [] : [se
3293
3068
  *
3294
3069
  * **Example** (Partitioning by Result)
3295
3070
  *
3296
- * ```ts
3071
+ * ```ts import.meta.vitest
3297
3072
  * import { Option, Result } from "effect"
3298
3073
  *
3299
3074
  * const parseNumber = (s: string): Result.Result<number, string> => {
@@ -3301,14 +3076,9 @@ export const toArray = <A>(self: Option<A>): Array<A> => isNone(self) ? [] : [se
3301
3076
  * return isNaN(n) ? Result.fail("Not a number") : Result.succeed(n)
3302
3077
  * }
3303
3078
  *
3304
- * console.log(Option.partitionMap(Option.some("42"), parseNumber))
3305
- * // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'Some', value: 42 }]
3306
- *
3307
- * console.log(Option.partitionMap(Option.some("abc"), parseNumber))
3308
- * // Output: [{ _id: 'Option', _tag: 'Some', value: 'Not a number' }, { _id: 'Option', _tag: 'None' }]
3309
- *
3310
- * console.log(Option.partitionMap(Option.none(), parseNumber))
3311
- * // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'None' }]
3079
+ * Option.partitionMap(Option.some("42"), parseNumber) // => [Option.none(), Option.some(42)]
3080
+ * Option.partitionMap(Option.some("abc"), parseNumber) // => [Option.some("Not a number"), Option.none()]
3081
+ * Option.partitionMap(Option.none(), parseNumber) // => [Option.none(), Option.none()]
3312
3082
  * ```
3313
3083
  *
3314
3084
  * @see {@link filter} for simple predicate-based filtering
@@ -3333,7 +3103,7 @@ export const partitionMap: {
3333
3103
  *
3334
3104
  * **Example** (Partitioning by Result)
3335
3105
  *
3336
- * ```ts
3106
+ * ```ts import.meta.vitest
3337
3107
  * import { Option, Result } from "effect"
3338
3108
  *
3339
3109
  * const parseNumber = (s: string): Result.Result<number, string> => {
@@ -3341,14 +3111,9 @@ export const partitionMap: {
3341
3111
  * return isNaN(n) ? Result.fail("Not a number") : Result.succeed(n)
3342
3112
  * }
3343
3113
  *
3344
- * console.log(Option.partitionMap(Option.some("42"), parseNumber))
3345
- * // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'Some', value: 42 }]
3346
- *
3347
- * console.log(Option.partitionMap(Option.some("abc"), parseNumber))
3348
- * // Output: [{ _id: 'Option', _tag: 'Some', value: 'Not a number' }, { _id: 'Option', _tag: 'None' }]
3349
- *
3350
- * console.log(Option.partitionMap(Option.none(), parseNumber))
3351
- * // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'None' }]
3114
+ * Option.partitionMap(Option.some("42"), parseNumber) // => [Option.none(), Option.some(42)]
3115
+ * Option.partitionMap(Option.some("abc"), parseNumber) // => [Option.some("Not a number"), Option.none()]
3116
+ * Option.partitionMap(Option.none(), parseNumber) // => [Option.none(), Option.none()]
3352
3117
  * ```
3353
3118
  *
3354
3119
  * @see {@link filter} for simple predicate-based filtering
@@ -3373,7 +3138,7 @@ export const partitionMap: {
3373
3138
  *
3374
3139
  * **Example** (Partitioning by Result)
3375
3140
  *
3376
- * ```ts
3141
+ * ```ts import.meta.vitest
3377
3142
  * import { Option, Result } from "effect"
3378
3143
  *
3379
3144
  * const parseNumber = (s: string): Result.Result<number, string> => {
@@ -3381,14 +3146,9 @@ export const partitionMap: {
3381
3146
  * return isNaN(n) ? Result.fail("Not a number") : Result.succeed(n)
3382
3147
  * }
3383
3148
  *
3384
- * console.log(Option.partitionMap(Option.some("42"), parseNumber))
3385
- * // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'Some', value: 42 }]
3386
- *
3387
- * console.log(Option.partitionMap(Option.some("abc"), parseNumber))
3388
- * // Output: [{ _id: 'Option', _tag: 'Some', value: 'Not a number' }, { _id: 'Option', _tag: 'None' }]
3389
- *
3390
- * console.log(Option.partitionMap(Option.none(), parseNumber))
3391
- * // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'None' }]
3149
+ * Option.partitionMap(Option.some("42"), parseNumber) // => [Option.none(), Option.some(42)]
3150
+ * Option.partitionMap(Option.some("abc"), parseNumber) // => [Option.some("Not a number"), Option.none()]
3151
+ * Option.partitionMap(Option.none(), parseNumber) // => [Option.none(), Option.none()]
3392
3152
  * ```
3393
3153
  *
3394
3154
  * @see {@link filter} for simple predicate-based filtering
@@ -3423,14 +3183,13 @@ export const partitionMap: {
3423
3183
  *
3424
3184
  * **Example** (Filtering and transforming)
3425
3185
  *
3426
- * ```ts
3186
+ * ```ts import.meta.vitest
3427
3187
  * import { Option, Result } from "effect"
3428
3188
  *
3429
- * console.log(Option.filterMap(
3189
+ * Option.filterMap(
3430
3190
  * Option.some(2),
3431
3191
  * (n) => (n % 2 === 0 ? Result.succeed(`Even: ${n}`) : Result.failVoid)
3432
- * ))
3433
- * // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }
3192
+ * ) // => Option.some("Even: 2")
3434
3193
  * ```
3435
3194
  *
3436
3195
  * @see {@link filter} for predicate-based filtering
@@ -3454,14 +3213,13 @@ export const filterMap: {
3454
3213
  *
3455
3214
  * **Example** (Filtering and transforming)
3456
3215
  *
3457
- * ```ts
3216
+ * ```ts import.meta.vitest
3458
3217
  * import { Option, Result } from "effect"
3459
3218
  *
3460
- * console.log(Option.filterMap(
3219
+ * Option.filterMap(
3461
3220
  * Option.some(2),
3462
3221
  * (n) => (n % 2 === 0 ? Result.succeed(`Even: ${n}`) : Result.failVoid)
3463
- * ))
3464
- * // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }
3222
+ * ) // => Option.some("Even: 2")
3465
3223
  * ```
3466
3224
  *
3467
3225
  * @see {@link filter} for predicate-based filtering
@@ -3485,14 +3243,13 @@ export const filterMap: {
3485
3243
  *
3486
3244
  * **Example** (Filtering and transforming)
3487
3245
  *
3488
- * ```ts
3246
+ * ```ts import.meta.vitest
3489
3247
  * import { Option, Result } from "effect"
3490
3248
  *
3491
- * console.log(Option.filterMap(
3249
+ * Option.filterMap(
3492
3250
  * Option.some(2),
3493
3251
  * (n) => (n % 2 === 0 ? Result.succeed(`Even: ${n}`) : Result.failVoid)
3494
- * ))
3495
- * // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }
3252
+ * ) // => Option.some("Even: 2")
3496
3253
  * ```
3497
3254
  *
3498
3255
  * @see {@link filter} for predicate-based filtering
@@ -3527,20 +3284,15 @@ export const filterMap: {
3527
3284
  *
3528
3285
  * **Example** (Filtering with a predicate)
3529
3286
  *
3530
- * ```ts
3287
+ * ```ts import.meta.vitest
3531
3288
  * import { Option } from "effect"
3532
3289
  *
3533
3290
  * const removeEmpty = (input: Option.Option<string>) =>
3534
3291
  * Option.filter(input, (value) => value !== "")
3535
3292
  *
3536
- * console.log(removeEmpty(Option.some("hello")))
3537
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
3538
- *
3539
- * console.log(removeEmpty(Option.some("")))
3540
- * // Output: { _id: 'Option', _tag: 'None' }
3541
- *
3542
- * console.log(removeEmpty(Option.none()))
3543
- * // Output: { _id: 'Option', _tag: 'None' }
3293
+ * removeEmpty(Option.some("hello")) // => Option.some("hello")
3294
+ * removeEmpty(Option.some("")) // => Option.none()
3295
+ * removeEmpty(Option.none()) // => Option.none()
3544
3296
  * ```
3545
3297
  *
3546
3298
  * @see {@link filterMap} to transform and filter simultaneously
@@ -3568,20 +3320,15 @@ export const filter: {
3568
3320
  *
3569
3321
  * **Example** (Filtering with a predicate)
3570
3322
  *
3571
- * ```ts
3323
+ * ```ts import.meta.vitest
3572
3324
  * import { Option } from "effect"
3573
3325
  *
3574
3326
  * const removeEmpty = (input: Option.Option<string>) =>
3575
3327
  * Option.filter(input, (value) => value !== "")
3576
3328
  *
3577
- * console.log(removeEmpty(Option.some("hello")))
3578
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
3579
- *
3580
- * console.log(removeEmpty(Option.some("")))
3581
- * // Output: { _id: 'Option', _tag: 'None' }
3582
- *
3583
- * console.log(removeEmpty(Option.none()))
3584
- * // Output: { _id: 'Option', _tag: 'None' }
3329
+ * removeEmpty(Option.some("hello")) // => Option.some("hello")
3330
+ * removeEmpty(Option.some("")) // => Option.none()
3331
+ * removeEmpty(Option.none()) // => Option.none()
3585
3332
  * ```
3586
3333
  *
3587
3334
  * @see {@link filterMap} to transform and filter simultaneously
@@ -3609,20 +3356,15 @@ export const filter: {
3609
3356
  *
3610
3357
  * **Example** (Filtering with a predicate)
3611
3358
  *
3612
- * ```ts
3359
+ * ```ts import.meta.vitest
3613
3360
  * import { Option } from "effect"
3614
3361
  *
3615
3362
  * const removeEmpty = (input: Option.Option<string>) =>
3616
3363
  * Option.filter(input, (value) => value !== "")
3617
3364
  *
3618
- * console.log(removeEmpty(Option.some("hello")))
3619
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
3620
- *
3621
- * console.log(removeEmpty(Option.some("")))
3622
- * // Output: { _id: 'Option', _tag: 'None' }
3623
- *
3624
- * console.log(removeEmpty(Option.none()))
3625
- * // Output: { _id: 'Option', _tag: 'None' }
3365
+ * removeEmpty(Option.some("hello")) // => Option.some("hello")
3366
+ * removeEmpty(Option.some("")) // => Option.none()
3367
+ * removeEmpty(Option.none()) // => Option.none()
3626
3368
  * ```
3627
3369
  *
3628
3370
  * @see {@link filterMap} to transform and filter simultaneously
@@ -3650,20 +3392,15 @@ export const filter: {
3650
3392
  *
3651
3393
  * **Example** (Filtering with a predicate)
3652
3394
  *
3653
- * ```ts
3395
+ * ```ts import.meta.vitest
3654
3396
  * import { Option } from "effect"
3655
3397
  *
3656
3398
  * const removeEmpty = (input: Option.Option<string>) =>
3657
3399
  * Option.filter(input, (value) => value !== "")
3658
3400
  *
3659
- * console.log(removeEmpty(Option.some("hello")))
3660
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
3661
- *
3662
- * console.log(removeEmpty(Option.some("")))
3663
- * // Output: { _id: 'Option', _tag: 'None' }
3664
- *
3665
- * console.log(removeEmpty(Option.none()))
3666
- * // Output: { _id: 'Option', _tag: 'None' }
3401
+ * removeEmpty(Option.some("hello")) // => Option.some("hello")
3402
+ * removeEmpty(Option.some("")) // => Option.none()
3403
+ * removeEmpty(Option.none()) // => Option.none()
3667
3404
  * ```
3668
3405
  *
3669
3406
  * @see {@link filterMap} to transform and filter simultaneously
@@ -3691,20 +3428,15 @@ export const filter: {
3691
3428
  *
3692
3429
  * **Example** (Filtering with a predicate)
3693
3430
  *
3694
- * ```ts
3431
+ * ```ts import.meta.vitest
3695
3432
  * import { Option } from "effect"
3696
3433
  *
3697
3434
  * const removeEmpty = (input: Option.Option<string>) =>
3698
3435
  * Option.filter(input, (value) => value !== "")
3699
3436
  *
3700
- * console.log(removeEmpty(Option.some("hello")))
3701
- * // Output: { _id: 'Option', _tag: 'Some', value: 'hello' }
3702
- *
3703
- * console.log(removeEmpty(Option.some("")))
3704
- * // Output: { _id: 'Option', _tag: 'None' }
3705
- *
3706
- * console.log(removeEmpty(Option.none()))
3707
- * // Output: { _id: 'Option', _tag: 'None' }
3437
+ * removeEmpty(Option.some("hello")) // => Option.some("hello")
3438
+ * removeEmpty(Option.some("")) // => Option.none()
3439
+ * removeEmpty(Option.none()) // => Option.none()
3708
3440
  * ```
3709
3441
  *
3710
3442
  * @see {@link filterMap} to transform and filter simultaneously
@@ -3736,19 +3468,14 @@ export const filter: {
3736
3468
  *
3737
3469
  * **Example** (Comparing Options)
3738
3470
  *
3739
- * ```ts
3471
+ * ```ts import.meta.vitest
3740
3472
  * import { Equivalence, Option } from "effect"
3741
3473
  *
3742
3474
  * const eq = Option.makeEquivalence(Equivalence.strictEqual<number>())
3743
3475
  *
3744
- * console.log(eq(Option.some(1), Option.some(1)))
3745
- * // Output: true
3746
- *
3747
- * console.log(eq(Option.some(1), Option.some(2)))
3748
- * // Output: false
3749
- *
3750
- * console.log(eq(Option.none(), Option.none()))
3751
- * // Output: true
3476
+ * eq(Option.some(1), Option.some(1)) // => true
3477
+ * eq(Option.some(1), Option.some(2)) // => false
3478
+ * eq(Option.none(), Option.none()) // => true
3752
3479
  * ```
3753
3480
  *
3754
3481
  * @category instances
@@ -3774,19 +3501,14 @@ export const makeEquivalence = <A>(isEquivalent: Equivalence.Equivalence<A>): Eq
3774
3501
  *
3775
3502
  * **Example** (Ordering Options)
3776
3503
  *
3777
- * ```ts
3504
+ * ```ts import.meta.vitest
3778
3505
  * import { Number as N, Option } from "effect"
3779
3506
  *
3780
3507
  * const ord = Option.makeOrder(N.Order)
3781
3508
  *
3782
- * console.log(ord(Option.none(), Option.some(1)))
3783
- * // Output: -1
3784
- *
3785
- * console.log(ord(Option.some(1), Option.none()))
3786
- * // Output: 1
3787
- *
3788
- * console.log(ord(Option.some(1), Option.some(2)))
3789
- * // Output: -1
3509
+ * ord(Option.none(), Option.some(1)) // => -1
3510
+ * ord(Option.some(1), Option.none()) // => 1
3511
+ * ord(Option.some(1), Option.some(2)) // => -1
3790
3512
  * ```
3791
3513
  *
3792
3514
  * @category sorting
@@ -3810,16 +3532,13 @@ export const makeOrder = <A>(O: Order<A>): Order<Option<A>> =>
3810
3532
  *
3811
3533
  * **Example** (Lifting addition)
3812
3534
  *
3813
- * ```ts
3535
+ * ```ts import.meta.vitest
3814
3536
  * import { Option } from "effect"
3815
3537
  *
3816
3538
  * const addOptions = Option.lift2((a: number, b: number) => a + b)
3817
3539
  *
3818
- * console.log(addOptions(Option.some(2), Option.some(3)))
3819
- * // Output: { _id: 'Option', _tag: 'Some', value: 5 }
3820
- *
3821
- * console.log(addOptions(Option.some(2), Option.none()))
3822
- * // Output: { _id: 'Option', _tag: 'None' }
3540
+ * addOptions(Option.some(2), Option.some(3)) // => Option.some(5)
3541
+ * addOptions(Option.some(2), Option.none()) // => Option.none()
3823
3542
  * ```
3824
3543
  *
3825
3544
  * @see {@link zipWith} for a non-lifted variant
@@ -3849,16 +3568,13 @@ export const lift2 = <A, B, C>(f: (a: A, b: B) => C): {
3849
3568
  *
3850
3569
  * **Example** (Validating positive numbers)
3851
3570
  *
3852
- * ```ts
3571
+ * ```ts import.meta.vitest
3853
3572
  * import { Option } from "effect"
3854
3573
  *
3855
3574
  * const parsePositive = Option.liftPredicate((n: number) => n > 0)
3856
3575
  *
3857
- * console.log(parsePositive(1))
3858
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
3859
- *
3860
- * console.log(parsePositive(-1))
3861
- * // Output: { _id: 'Option', _tag: 'None' }
3576
+ * parsePositive(1) // => Option.some(1)
3577
+ * parsePositive(-1) // => Option.none()
3862
3578
  * ```
3863
3579
  *
3864
3580
  * @see {@link filter} to apply a predicate to an existing `Option`
@@ -3886,16 +3602,13 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
3886
3602
  *
3887
3603
  * **Example** (Validating positive numbers)
3888
3604
  *
3889
- * ```ts
3605
+ * ```ts import.meta.vitest
3890
3606
  * import { Option } from "effect"
3891
3607
  *
3892
3608
  * const parsePositive = Option.liftPredicate((n: number) => n > 0)
3893
3609
  *
3894
- * console.log(parsePositive(1))
3895
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
3896
- *
3897
- * console.log(parsePositive(-1))
3898
- * // Output: { _id: 'Option', _tag: 'None' }
3610
+ * parsePositive(1) // => Option.some(1)
3611
+ * parsePositive(-1) // => Option.none()
3899
3612
  * ```
3900
3613
  *
3901
3614
  * @see {@link filter} to apply a predicate to an existing `Option`
@@ -3922,16 +3635,13 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
3922
3635
  *
3923
3636
  * **Example** (Validating positive numbers)
3924
3637
  *
3925
- * ```ts
3638
+ * ```ts import.meta.vitest
3926
3639
  * import { Option } from "effect"
3927
3640
  *
3928
3641
  * const parsePositive = Option.liftPredicate((n: number) => n > 0)
3929
3642
  *
3930
- * console.log(parsePositive(1))
3931
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
3932
- *
3933
- * console.log(parsePositive(-1))
3934
- * // Output: { _id: 'Option', _tag: 'None' }
3643
+ * parsePositive(1) // => Option.some(1)
3644
+ * parsePositive(-1) // => Option.none()
3935
3645
  * ```
3936
3646
  *
3937
3647
  * @see {@link filter} to apply a predicate to an existing `Option`
@@ -3958,16 +3668,13 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
3958
3668
  *
3959
3669
  * **Example** (Validating positive numbers)
3960
3670
  *
3961
- * ```ts
3671
+ * ```ts import.meta.vitest
3962
3672
  * import { Option } from "effect"
3963
3673
  *
3964
3674
  * const parsePositive = Option.liftPredicate((n: number) => n > 0)
3965
3675
  *
3966
- * console.log(parsePositive(1))
3967
- * // Output: { _id: 'Option', _tag: 'Some', value: 1 }
3968
- *
3969
- * console.log(parsePositive(-1))
3970
- * // Output: { _id: 'Option', _tag: 'None' }
3676
+ * parsePositive(1) // => Option.some(1)
3677
+ * parsePositive(-1) // => Option.none()
3971
3678
  * ```
3972
3679
  *
3973
3680
  * @see {@link filter} to apply a predicate to an existing `Option`
@@ -3998,24 +3705,19 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
3998
3705
  *
3999
3706
  * **Example** (Checking with custom equivalence)
4000
3707
  *
4001
- * ```ts
3708
+ * ```ts import.meta.vitest
4002
3709
  * import { Equivalence, Option } from "effect"
4003
3710
  *
4004
3711
  * const check = Option.containsWith(Equivalence.strictEqual<number>())
4005
3712
  *
4006
- * console.log(Option.some(2).pipe(check(2)))
4007
- * // Output: true
4008
- *
4009
- * console.log(Option.some(1).pipe(check(2)))
4010
- * // Output: false
4011
- *
4012
- * console.log(Option.none().pipe(check(2)))
4013
- * // Output: false
3713
+ * Option.some(2).pipe(check(2)) // => true
3714
+ * Option.some(1).pipe(check(2)) // => false
3715
+ * Option.none().pipe(check(2)) // => false
4014
3716
  * ```
4015
3717
  *
4016
3718
  * @see {@link contains} for a version using default equality
4017
3719
  *
4018
- * @category elements
3720
+ * @category predicates
4019
3721
  * @since 2.0.0
4020
3722
  */
4021
3723
  export const containsWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
@@ -4039,23 +3741,18 @@ export const containsWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
4039
3741
  *
4040
3742
  * **Example** (Checking containment)
4041
3743
  *
4042
- * ```ts
3744
+ * ```ts import.meta.vitest
4043
3745
  * import { Option } from "effect"
4044
3746
  *
4045
- * console.log(Option.some(2).pipe(Option.contains(2)))
4046
- * // Output: true
4047
- *
4048
- * console.log(Option.some(1).pipe(Option.contains(2)))
4049
- * // Output: false
4050
- *
4051
- * console.log(Option.none().pipe(Option.contains(2)))
4052
- * // Output: false
3747
+ * Option.some(2).pipe(Option.contains(2)) // => true
3748
+ * Option.some(1).pipe(Option.contains(2)) // => false
3749
+ * Option.none().pipe(Option.contains(2)) // => false
4053
3750
  * ```
4054
3751
  *
4055
3752
  * @see {@link containsWith} for custom equality
4056
3753
  * @see {@link exists} to test with a predicate
4057
3754
  *
4058
- * @category elements
3755
+ * @category predicates
4059
3756
  * @since 2.0.0
4060
3757
  */
4061
3758
  export const contains: {
@@ -4075,23 +3772,18 @@ export const contains: {
4075
3772
  *
4076
3773
  * **Example** (Checking containment)
4077
3774
  *
4078
- * ```ts
3775
+ * ```ts import.meta.vitest
4079
3776
  * import { Option } from "effect"
4080
3777
  *
4081
- * console.log(Option.some(2).pipe(Option.contains(2)))
4082
- * // Output: true
4083
- *
4084
- * console.log(Option.some(1).pipe(Option.contains(2)))
4085
- * // Output: false
4086
- *
4087
- * console.log(Option.none().pipe(Option.contains(2)))
4088
- * // Output: false
3778
+ * Option.some(2).pipe(Option.contains(2)) // => true
3779
+ * Option.some(1).pipe(Option.contains(2)) // => false
3780
+ * Option.none().pipe(Option.contains(2)) // => false
4089
3781
  * ```
4090
3782
  *
4091
3783
  * @see {@link containsWith} for custom equality
4092
3784
  * @see {@link exists} to test with a predicate
4093
3785
  *
4094
- * @category elements
3786
+ * @category predicates
4095
3787
  * @since 2.0.0
4096
3788
  */
4097
3789
  <A>(a: A): (self: Option<A>) => boolean
@@ -4111,23 +3803,18 @@ export const contains: {
4111
3803
  *
4112
3804
  * **Example** (Checking containment)
4113
3805
  *
4114
- * ```ts
3806
+ * ```ts import.meta.vitest
4115
3807
  * import { Option } from "effect"
4116
3808
  *
4117
- * console.log(Option.some(2).pipe(Option.contains(2)))
4118
- * // Output: true
4119
- *
4120
- * console.log(Option.some(1).pipe(Option.contains(2)))
4121
- * // Output: false
4122
- *
4123
- * console.log(Option.none().pipe(Option.contains(2)))
4124
- * // Output: false
3809
+ * Option.some(2).pipe(Option.contains(2)) // => true
3810
+ * Option.some(1).pipe(Option.contains(2)) // => false
3811
+ * Option.none().pipe(Option.contains(2)) // => false
4125
3812
  * ```
4126
3813
  *
4127
3814
  * @see {@link containsWith} for custom equality
4128
3815
  * @see {@link exists} to test with a predicate
4129
3816
  *
4130
- * @category elements
3817
+ * @category predicates
4131
3818
  * @since 2.0.0
4132
3819
  */
4133
3820
  <A>(self: Option<A>, a: A): boolean
@@ -4149,25 +3836,20 @@ export const contains: {
4149
3836
  *
4150
3837
  * **Example** (Testing a condition)
4151
3838
  *
4152
- * ```ts
3839
+ * ```ts import.meta.vitest
4153
3840
  * import { Option } from "effect"
4154
3841
  *
4155
3842
  * const isEven = (n: number) => n % 2 === 0
4156
3843
  *
4157
- * console.log(Option.some(2).pipe(Option.exists(isEven)))
4158
- * // Output: true
4159
- *
4160
- * console.log(Option.some(1).pipe(Option.exists(isEven)))
4161
- * // Output: false
4162
- *
4163
- * console.log(Option.none().pipe(Option.exists(isEven)))
4164
- * // Output: false
3844
+ * Option.some(2).pipe(Option.exists(isEven)) // => true
3845
+ * Option.some(1).pipe(Option.exists(isEven)) // => false
3846
+ * Option.none().pipe(Option.exists(isEven)) // => false
4165
3847
  * ```
4166
3848
  *
4167
3849
  * @see {@link filter} to keep or discard based on a predicate
4168
3850
  * @see {@link contains} to test for a specific value
4169
3851
  *
4170
- * @category elements
3852
+ * @category predicates
4171
3853
  * @since 2.0.0
4172
3854
  */
4173
3855
  export const exists: {
@@ -4187,25 +3869,20 @@ export const exists: {
4187
3869
  *
4188
3870
  * **Example** (Testing a condition)
4189
3871
  *
4190
- * ```ts
3872
+ * ```ts import.meta.vitest
4191
3873
  * import { Option } from "effect"
4192
3874
  *
4193
3875
  * const isEven = (n: number) => n % 2 === 0
4194
3876
  *
4195
- * console.log(Option.some(2).pipe(Option.exists(isEven)))
4196
- * // Output: true
4197
- *
4198
- * console.log(Option.some(1).pipe(Option.exists(isEven)))
4199
- * // Output: false
4200
- *
4201
- * console.log(Option.none().pipe(Option.exists(isEven)))
4202
- * // Output: false
3877
+ * Option.some(2).pipe(Option.exists(isEven)) // => true
3878
+ * Option.some(1).pipe(Option.exists(isEven)) // => false
3879
+ * Option.none().pipe(Option.exists(isEven)) // => false
4203
3880
  * ```
4204
3881
  *
4205
3882
  * @see {@link filter} to keep or discard based on a predicate
4206
3883
  * @see {@link contains} to test for a specific value
4207
3884
  *
4208
- * @category elements
3885
+ * @category predicates
4209
3886
  * @since 2.0.0
4210
3887
  */
4211
3888
  <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): (self: Option<A>) => self is Option<B>
@@ -4225,25 +3902,20 @@ export const exists: {
4225
3902
  *
4226
3903
  * **Example** (Testing a condition)
4227
3904
  *
4228
- * ```ts
3905
+ * ```ts import.meta.vitest
4229
3906
  * import { Option } from "effect"
4230
3907
  *
4231
3908
  * const isEven = (n: number) => n % 2 === 0
4232
3909
  *
4233
- * console.log(Option.some(2).pipe(Option.exists(isEven)))
4234
- * // Output: true
4235
- *
4236
- * console.log(Option.some(1).pipe(Option.exists(isEven)))
4237
- * // Output: false
4238
- *
4239
- * console.log(Option.none().pipe(Option.exists(isEven)))
4240
- * // Output: false
3910
+ * Option.some(2).pipe(Option.exists(isEven)) // => true
3911
+ * Option.some(1).pipe(Option.exists(isEven)) // => false
3912
+ * Option.none().pipe(Option.exists(isEven)) // => false
4241
3913
  * ```
4242
3914
  *
4243
3915
  * @see {@link filter} to keep or discard based on a predicate
4244
3916
  * @see {@link contains} to test for a specific value
4245
3917
  *
4246
- * @category elements
3918
+ * @category predicates
4247
3919
  * @since 2.0.0
4248
3920
  */
4249
3921
  <A>(predicate: Predicate<NoInfer<A>>): (self: Option<A>) => boolean
@@ -4263,25 +3935,20 @@ export const exists: {
4263
3935
  *
4264
3936
  * **Example** (Testing a condition)
4265
3937
  *
4266
- * ```ts
3938
+ * ```ts import.meta.vitest
4267
3939
  * import { Option } from "effect"
4268
3940
  *
4269
3941
  * const isEven = (n: number) => n % 2 === 0
4270
3942
  *
4271
- * console.log(Option.some(2).pipe(Option.exists(isEven)))
4272
- * // Output: true
4273
- *
4274
- * console.log(Option.some(1).pipe(Option.exists(isEven)))
4275
- * // Output: false
4276
- *
4277
- * console.log(Option.none().pipe(Option.exists(isEven)))
4278
- * // Output: false
3943
+ * Option.some(2).pipe(Option.exists(isEven)) // => true
3944
+ * Option.some(1).pipe(Option.exists(isEven)) // => false
3945
+ * Option.none().pipe(Option.exists(isEven)) // => false
4279
3946
  * ```
4280
3947
  *
4281
3948
  * @see {@link filter} to keep or discard based on a predicate
4282
3949
  * @see {@link contains} to test for a specific value
4283
3950
  *
4284
- * @category elements
3951
+ * @category predicates
4285
3952
  * @since 2.0.0
4286
3953
  */
4287
3954
  <A, B extends A>(self: Option<A>, refinement: Refinement<A, B>): self is Option<B>
@@ -4301,25 +3968,20 @@ export const exists: {
4301
3968
  *
4302
3969
  * **Example** (Testing a condition)
4303
3970
  *
4304
- * ```ts
3971
+ * ```ts import.meta.vitest
4305
3972
  * import { Option } from "effect"
4306
3973
  *
4307
3974
  * const isEven = (n: number) => n % 2 === 0
4308
3975
  *
4309
- * console.log(Option.some(2).pipe(Option.exists(isEven)))
4310
- * // Output: true
4311
- *
4312
- * console.log(Option.some(1).pipe(Option.exists(isEven)))
4313
- * // Output: false
4314
- *
4315
- * console.log(Option.none().pipe(Option.exists(isEven)))
4316
- * // Output: false
3976
+ * Option.some(2).pipe(Option.exists(isEven)) // => true
3977
+ * Option.some(1).pipe(Option.exists(isEven)) // => false
3978
+ * Option.none().pipe(Option.exists(isEven)) // => false
4317
3979
  * ```
4318
3980
  *
4319
3981
  * @see {@link filter} to keep or discard based on a predicate
4320
3982
  * @see {@link contains} to test for a specific value
4321
3983
  *
4322
- * @category elements
3984
+ * @category predicates
4323
3985
  * @since 2.0.0
4324
3986
  */
4325
3987
  <A>(self: Option<A>, predicate: Predicate<A>): boolean
@@ -4344,24 +4006,22 @@ export const exists: {
4344
4006
  *
4345
4007
  * **Example** (Starting do notation)
4346
4008
  *
4347
- * ```ts
4009
+ * ```ts import.meta.vitest
4348
4010
  * import { Option, pipe } from "effect"
4349
- * import * as assert from "node:assert"
4350
4011
  *
4351
- * const result = pipe(
4012
+ * pipe(
4352
4013
  * Option.some(2),
4353
4014
  * Option.bindTo("x"),
4354
4015
  * Option.bind("y", () => Option.some(3)),
4355
4016
  * Option.let("sum", ({ x, y }) => x + y)
4356
- * )
4357
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4017
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4358
4018
  * ```
4359
4019
  *
4360
4020
  * @see {@link Do} for starting with an empty record
4361
4021
  * @see {@link bind} to add `Option` values
4362
4022
  * @see {@link let_ let} to add plain values
4363
4023
  *
4364
- * @category do notation
4024
+ * @category mapping
4365
4025
  * @since 2.0.0
4366
4026
  */
4367
4027
  export const bindTo: {
@@ -4380,24 +4040,22 @@ export const bindTo: {
4380
4040
  *
4381
4041
  * **Example** (Starting do notation)
4382
4042
  *
4383
- * ```ts
4043
+ * ```ts import.meta.vitest
4384
4044
  * import { Option, pipe } from "effect"
4385
- * import * as assert from "node:assert"
4386
4045
  *
4387
- * const result = pipe(
4046
+ * pipe(
4388
4047
  * Option.some(2),
4389
4048
  * Option.bindTo("x"),
4390
4049
  * Option.bind("y", () => Option.some(3)),
4391
4050
  * Option.let("sum", ({ x, y }) => x + y)
4392
- * )
4393
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4051
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4394
4052
  * ```
4395
4053
  *
4396
4054
  * @see {@link Do} for starting with an empty record
4397
4055
  * @see {@link bind} to add `Option` values
4398
4056
  * @see {@link let_ let} to add plain values
4399
4057
  *
4400
- * @category do notation
4058
+ * @category mapping
4401
4059
  * @since 2.0.0
4402
4060
  */
4403
4061
  <N extends string>(name: N): <A>(self: Option<A>) => Option<{ [K in N]: A }>
@@ -4416,24 +4074,22 @@ export const bindTo: {
4416
4074
  *
4417
4075
  * **Example** (Starting do notation)
4418
4076
  *
4419
- * ```ts
4077
+ * ```ts import.meta.vitest
4420
4078
  * import { Option, pipe } from "effect"
4421
- * import * as assert from "node:assert"
4422
4079
  *
4423
- * const result = pipe(
4080
+ * pipe(
4424
4081
  * Option.some(2),
4425
4082
  * Option.bindTo("x"),
4426
4083
  * Option.bind("y", () => Option.some(3)),
4427
4084
  * Option.let("sum", ({ x, y }) => x + y)
4428
- * )
4429
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4085
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4430
4086
  * ```
4431
4087
  *
4432
4088
  * @see {@link Do} for starting with an empty record
4433
4089
  * @see {@link bind} to add `Option` values
4434
4090
  * @see {@link let_ let} to add plain values
4435
4091
  *
4436
- * @category do notation
4092
+ * @category mapping
4437
4093
  * @since 2.0.0
4438
4094
  */
4439
4095
  <A, N extends string>(self: Option<A>, name: N): Option<{ [K in N]: A }>
@@ -4462,24 +4118,22 @@ export {
4462
4118
  *
4463
4119
  * **Example** (Adding a computed value)
4464
4120
  *
4465
- * ```ts
4121
+ * ```ts import.meta.vitest
4466
4122
  * import { Option, pipe } from "effect"
4467
- * import * as assert from "node:assert"
4468
4123
  *
4469
- * const result = pipe(
4124
+ * pipe(
4470
4125
  * Option.Do,
4471
4126
  * Option.bind("x", () => Option.some(2)),
4472
4127
  * Option.bind("y", () => Option.some(3)),
4473
4128
  * Option.let("sum", ({ x, y }) => x + y)
4474
- * )
4475
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4129
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4476
4130
  * ```
4477
4131
  *
4478
4132
  * @see {@link Do} for starting the chain
4479
4133
  * @see {@link bind} to add `Option` values
4480
4134
  * @see {@link bindTo} to start by naming an existing `Option`
4481
4135
  *
4482
- * @category do notation
4136
+ * @category mapping
4483
4137
  * @since 2.0.0
4484
4138
  */
4485
4139
  let_ as let
@@ -4495,25 +4149,23 @@ export {
4495
4149
  *
4496
4150
  * **Example** (Binding Option values)
4497
4151
  *
4498
- * ```ts
4152
+ * ```ts import.meta.vitest
4499
4153
  * import { Option, pipe } from "effect"
4500
- * import * as assert from "node:assert"
4501
4154
  *
4502
- * const result = pipe(
4155
+ * pipe(
4503
4156
  * Option.Do,
4504
4157
  * Option.bind("x", () => Option.some(2)),
4505
4158
  * Option.bind("y", () => Option.some(3)),
4506
4159
  * Option.let("sum", ({ x, y }) => x + y),
4507
4160
  * Option.filter(({ x, y }) => x * y > 5)
4508
- * )
4509
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4161
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4510
4162
  * ```
4511
4163
  *
4512
4164
  * @see {@link Do} for starting the chain
4513
4165
  * @see {@link let_ let} to add plain values
4514
4166
  * @see {@link bindTo} to start by naming an existing `Option`
4515
4167
  *
4516
- * @category do notation
4168
+ * @category sequencing
4517
4169
  * @since 2.0.0
4518
4170
  */
4519
4171
  export const bind: {
@@ -4527,25 +4179,23 @@ export const bind: {
4527
4179
  *
4528
4180
  * **Example** (Binding Option values)
4529
4181
  *
4530
- * ```ts
4182
+ * ```ts import.meta.vitest
4531
4183
  * import { Option, pipe } from "effect"
4532
- * import * as assert from "node:assert"
4533
4184
  *
4534
- * const result = pipe(
4185
+ * pipe(
4535
4186
  * Option.Do,
4536
4187
  * Option.bind("x", () => Option.some(2)),
4537
4188
  * Option.bind("y", () => Option.some(3)),
4538
4189
  * Option.let("sum", ({ x, y }) => x + y),
4539
4190
  * Option.filter(({ x, y }) => x * y > 5)
4540
- * )
4541
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4191
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4542
4192
  * ```
4543
4193
  *
4544
4194
  * @see {@link Do} for starting the chain
4545
4195
  * @see {@link let_ let} to add plain values
4546
4196
  * @see {@link bindTo} to start by naming an existing `Option`
4547
4197
  *
4548
- * @category do notation
4198
+ * @category sequencing
4549
4199
  * @since 2.0.0
4550
4200
  */
4551
4201
  <N extends string, A extends object, B>(name: Exclude<N, keyof A>, f: (a: NoInfer<A>) => Option<B>): (self: Option<A>) => Option<{ [K in N | keyof A]: K extends keyof A ? A[K] : B }>
@@ -4559,25 +4209,23 @@ export const bind: {
4559
4209
  *
4560
4210
  * **Example** (Binding Option values)
4561
4211
  *
4562
- * ```ts
4212
+ * ```ts import.meta.vitest
4563
4213
  * import { Option, pipe } from "effect"
4564
- * import * as assert from "node:assert"
4565
4214
  *
4566
- * const result = pipe(
4215
+ * pipe(
4567
4216
  * Option.Do,
4568
4217
  * Option.bind("x", () => Option.some(2)),
4569
4218
  * Option.bind("y", () => Option.some(3)),
4570
4219
  * Option.let("sum", ({ x, y }) => x + y),
4571
4220
  * Option.filter(({ x, y }) => x * y > 5)
4572
- * )
4573
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4221
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4574
4222
  * ```
4575
4223
  *
4576
4224
  * @see {@link Do} for starting the chain
4577
4225
  * @see {@link let_ let} to add plain values
4578
4226
  * @see {@link bindTo} to start by naming an existing `Option`
4579
4227
  *
4580
- * @category do notation
4228
+ * @category sequencing
4581
4229
  * @since 2.0.0
4582
4230
  */
4583
4231
  <A extends object, N extends string, B>(
@@ -4598,25 +4246,23 @@ export const bind: {
4598
4246
  *
4599
4247
  * **Example** (Building Option pipelines with do notation)
4600
4248
  *
4601
- * ```ts
4249
+ * ```ts import.meta.vitest
4602
4250
  * import { Option, pipe } from "effect"
4603
- * import * as assert from "node:assert"
4604
4251
  *
4605
- * const result = pipe(
4252
+ * pipe(
4606
4253
  * Option.Do,
4607
4254
  * Option.bind("x", () => Option.some(2)),
4608
4255
  * Option.bind("y", () => Option.some(3)),
4609
4256
  * Option.let("sum", ({ x, y }) => x + y),
4610
4257
  * Option.filter(({ x, y }) => x * y > 5)
4611
- * )
4612
- * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
4258
+ * ) // => Option.some({ x: 2, y: 3, sum: 5 })
4613
4259
  * ```
4614
4260
  *
4615
4261
  * @see {@link bind} to add `Option` values
4616
4262
  * @see {@link let_ let} to add plain values
4617
4263
  * @see {@link bindTo} to start by naming an existing `Option`
4618
4264
  *
4619
- * @category do notation
4265
+ * @category constructors
4620
4266
  * @since 2.0.0
4621
4267
  */
4622
4268
  export const Do: Option<{}> = some({})
@@ -4638,21 +4284,17 @@ export const Do: Option<{}> = some({})
4638
4284
  *
4639
4285
  * **Example** (Sequencing Option computations with generator syntax)
4640
4286
  *
4641
- * ```ts
4287
+ * ```ts import.meta.vitest
4642
4288
  * import { Option } from "effect"
4643
4289
  *
4644
4290
  * const maybeName: Option.Option<string> = Option.some("John")
4645
4291
  * const maybeAge: Option.Option<number> = Option.some(25)
4646
4292
  *
4647
- * const person = Option.gen(function*() {
4293
+ * Option.gen(function*() {
4648
4294
  * const name = (yield* maybeName).toUpperCase()
4649
4295
  * const age = yield* maybeAge
4650
4296
  * return { name, age }
4651
- * })
4652
- *
4653
- * console.log(person)
4654
- * // Output:
4655
- * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
4297
+ * }) // => Option.some({ name: "JOHN", age: 25 })
4656
4298
  * ```
4657
4299
  *
4658
4300
  * @see {@link Do} / {@link bind} for the do notation alternative
@@ -4693,17 +4335,16 @@ export const gen: Gen.Gen<OptionTypeLambda> = (...args) => {
4693
4335
  *
4694
4336
  * **Example** (Reducing with first-wins semantics)
4695
4337
  *
4696
- * ```ts
4338
+ * ```ts import.meta.vitest
4697
4339
  * import { Number, Option } from "effect"
4698
4340
  *
4699
4341
  * const reducer = Option.makeReducer(Number.ReducerSum)
4700
- * console.log(reducer.combineAll([Option.some(1), Option.none(), Option.some(2)]))
4701
- * // Output: { _id: 'Option', _tag: 'Some', value: 3 }
4342
+ * reducer.combineAll([Option.some(1), Option.none(), Option.some(2)]) // => Option.some(3)
4702
4343
  * ```
4703
4344
  *
4704
4345
  * @see {@link makeReducerFailFast} for fail-fast semantics
4705
4346
  *
4706
- * @category Reducer
4347
+ * @category constructors
4707
4348
  * @since 4.0.0
4708
4349
  */
4709
4350
  export function makeReducer<A>(combiner: Combiner.Combiner<A>): Reducer.Reducer<Option<A>> {
@@ -4731,20 +4372,17 @@ export function makeReducer<A>(combiner: Combiner.Combiner<A>): Reducer.Reducer<
4731
4372
  *
4732
4373
  * **Example** (Fail-fast combining)
4733
4374
  *
4734
- * ```ts
4375
+ * ```ts import.meta.vitest
4735
4376
  * import { Number, Option } from "effect"
4736
4377
  *
4737
4378
  * const combiner = Option.makeCombinerFailFast(Number.ReducerSum)
4738
- * console.log(combiner.combine(Option.some(1), Option.some(2)))
4739
- * // Output: { _id: 'Option', _tag: 'Some', value: 3 }
4740
- *
4741
- * console.log(combiner.combine(Option.some(1), Option.none()))
4742
- * // Output: { _id: 'Option', _tag: 'None' }
4379
+ * combiner.combine(Option.some(1), Option.some(2)) // => Option.some(3)
4380
+ * combiner.combine(Option.some(1), Option.none()) // => Option.none()
4743
4381
  * ```
4744
4382
  *
4745
4383
  * @see {@link makeReducerFailFast} to get a full `Reducer`
4746
4384
  *
4747
- * @category Combiner
4385
+ * @category constructors
4748
4386
  * @since 4.0.0
4749
4387
  */
4750
4388
  export function makeCombinerFailFast<A>(combiner: Combiner.Combiner<A>): Combiner.Combiner<Option<A>> {
@@ -4771,21 +4409,18 @@ export function makeCombinerFailFast<A>(combiner: Combiner.Combiner<A>): Combine
4771
4409
  *
4772
4410
  * **Example** (Fail-fast reducing)
4773
4411
  *
4774
- * ```ts
4412
+ * ```ts import.meta.vitest
4775
4413
  * import { Number, Option } from "effect"
4776
4414
  *
4777
4415
  * const reducer = Option.makeReducerFailFast(Number.ReducerSum)
4778
- * console.log(reducer.combineAll([Option.some(1), Option.some(2)]))
4779
- * // Output: { _id: 'Option', _tag: 'Some', value: 3 }
4780
- *
4781
- * console.log(reducer.combineAll([Option.some(1), Option.none()]))
4782
- * // Output: { _id: 'Option', _tag: 'None' }
4416
+ * reducer.combineAll([Option.some(1), Option.some(2)]) // => Option.some(3)
4417
+ * reducer.combineAll([Option.some(1), Option.none()]) // => Option.none()
4783
4418
  * ```
4784
4419
  *
4785
4420
  * @see {@link makeCombinerFailFast} for just the combiner
4786
4421
  * @see {@link makeReducer} for non-fail-fast semantics
4787
4422
  *
4788
- * @category Reducer
4423
+ * @category constructors
4789
4424
  * @since 4.0.0
4790
4425
  */
4791
4426
  export function makeReducerFailFast<A>(reducer: Reducer.Reducer<A>): Reducer.Reducer<Option<A>> {