MCPcopy Create free account
hub / github.com/effect-app/libs / separate

Function separate

packages/effect-app/src/Set.ts:532–557  ·  view source on GitHub ↗
(
  EE: Equivalence.Equivalence<E>,
  EA: Equivalence.Equivalence<A>
)

Source from the content-addressed store, hash-verified

530 * Separate elements
531 */
532export function separate<E, A>(
533 EE: Equivalence.Equivalence<E>,
534 EA: Equivalence.Equivalence<A>
535): (fa: Set<Result.Result<A, E>>) => readonly [Set<E>, Set<A>] {
536 return (fa) => {
537 const elemEE = elem_(EE)
538 const elemEA = elem_(EA)
539 const left: MutableSet<E> = new Set()
540 const right: MutableSet<A> = new Set()
541 fa.forEach((e) => {
542 switch (e._tag) {
543 case "Failure":
544 if (!elemEE(left, e.failure)) {
545 left.add(e.failure)
546 }
547 break
548 case "Success":
549 if (!elemEA(right, e.success)) {
550 right.add(e.success)
551 }
552 break
553 }
554 })
555 return tuple(left, right)
556 }
557}
558
559/**
560 * Filter + Map

Callers

nothing calls this directly

Calls 4

tupleFunction · 0.90
elem_Function · 0.85
forEachMethod · 0.65
addMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…