// tracing: off
import { pipe } from "../../Function"
import * as T from "../_internal/effect"
import { chain } from "./chain"
import { fromEffect } from "./fromEffect"
import { map } from "./map"

function bind(tag, f) {
  return (mk) => chain((k) => map((a) => ({ ...k, [tag]: a }))(f(k)))(mk)
}

function let_(tag, f) {
  return (mk) => map((k) => ({ ...k, [tag]: f(k) }))(mk)
}

const do_ = /*#__PURE__*/ fromEffect(/*#__PURE__*/ T.succeed({}))
export { let_ as let, bind, do_ as do }
//# sourceMappingURL=do.js.map
