(self: These<E0, A0>, f: (a: A0, w: O.Option<E0>) => These<E, A>)
| 83 | } |
| 84 | |
| 85 | export function chain_<E0, A0, E, A>(self: These<E0, A0>, f: (a: A0, w: O.Option<E0>) => These<E, A>) { |
| 86 | return foldM_( |
| 87 | self, |
| 88 | (a) => f(a, O.none), |
| 89 | (a, _) => f(a, O.some(_)), |
| 90 | fail, |
| 91 | ) |
| 92 | } |
| 93 | |
| 94 | export function chain<E0, A0, E, A>(f: (a: A0, w: O.Option<E0>) => These<E, A>) { |
| 95 | return (self: These<E0, A0>) => chain_(self, f) |