const copyTo = (_f: string) => Effect.fail('copied');
const del = (_f: string) => Effect.succeed('succeed deleting');
const parseFile = Effect.succeed('a.txt').pipe(
Effect.tap((file) => Effect.orElse(copyTo(file), () => del(file))),
Effect.tap((file) =>
pipe(
del(file),
Effect.catchAll((_err) => Effect.sync(() => console.log("error deleting"))),
),
),
Effect.map((_file) => "file parsed content"),
);
const copyTo = (_f: string) => Effect.fail('copied');
const del = (_f: string) => Effect.succeed('succeed deleting');
const parseFile = Effect.succeed('a.txt').pipe(
Effect.tap((file) => Effect.orElse(copyTo(file), () => del(file))),
Effect.tap((file) =>
pipe(
del(file),
Effect.catchAll((_err) => Effect.sync(() => console.log("error deleting"))),
),
),
Effect.map((_file) => "file parsed content"),
);