Is there a rule of thumb when to keep a function argument as a function argument and when to yield a service that provides those values?
e.g by the docs Config is often yielded in and then values of the Config are accessed.
I'd say a function with the signature getSomethingById = (id: string) => Effect... is fine, there is no reason to yield in an IDService that gets an id to work with.
What if the function requires more information, such as Authorization?
getSomethingById = (id: string, auth: { ... }) => Effect..., auth is an object (similar to a potential Config).