export const when: {
(predicate: Predicate<A>): <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, Option.Option<A>>
<R, E, A>(self: Effect<R, E, A>, predicate: Predicate<A>): Effect<R, E, Option.Option<A>>
}
export const when: {
(predicate: Predicate<A>): <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, Option.Option<A>>
<R, E, A>(self: Effect<R, E, A>, predicate: Predicate<A>): Effect<R, E, Option.Option<A>>
}