"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
exports.provideAll_ = exports.provideAll = exports.provide = void 0
const provideSome_1 = require("./provideSome")
/**
 * Provides some of the environment required to run this effect,
 * leaving the remainder `R0` and combining it automatically using spread.
 */
function provide(r) {
  return (next) => (0, provideSome_1.provideSome_)(next, (r0) => ({ ...r0, ...r }))
}
exports.provide = provide
/**
 * Provides the stream with its required environment, which eliminates
 * its dependency on `R`.
 */
function provideAll(r) {
  return (self) => provideAll_(self, r)
}
exports.provideAll = provideAll
/**
 * Provides the stream with its required environment, which eliminates
 * its dependency on `R`.
 */
function provideAll_(self, r) {
  return (0, provideSome_1.provideSome_)(self, () => r)
}
exports.provideAll_ = provideAll_
//# sourceMappingURL=provide.js.map
