// ets_tracing: off import { chain_, provideAll_ } from "./core.js" import type { Effect } from "./effect.js" /** * Uses the output of `that` to provide to `self` * * @ets_data_first compose_ */ export function compose(that: Effect, __trace?: string) { return (self: Effect) => compose_(self, that, __trace) } /** * Uses the output of `that` to provide to `self` */ export function compose_( self: Effect, that: Effect, __trace?: string ) { return chain_(self, (r) => provideAll_(that, r), __trace) }