| 298 | |
| 299 | /** @internal */ |
| 300 | export const linearize = <E>(self: Cause.Cause<E>): HashSet.HashSet<Cause.Cause<E>> => |
| 301 | match(self, { |
| 302 | onEmpty: HashSet.empty(), |
| 303 | onFail: (error) => HashSet.make(fail(error)), |
| 304 | onDie: (defect) => HashSet.make(die(defect)), |
| 305 | onInterrupt: (fiberId) => HashSet.make(interrupt(fiberId)), |
| 306 | onSequential: (leftSet, rightSet) => |
| 307 | HashSet.flatMap(leftSet, (leftCause) => HashSet.map(rightSet, (rightCause) => sequential(leftCause, rightCause))), |
| 308 | onParallel: (leftSet, rightSet) => |
| 309 | HashSet.flatMap(leftSet, (leftCause) => HashSet.map(rightSet, (rightCause) => parallel(leftCause, rightCause))) |
| 310 | }) |
| 311 | |
| 312 | /** @internal */ |
| 313 | export const stripFailures = <E>(self: Cause.Cause<E>): Cause.Cause<never> => |