// tracing: off
import * as A from "../../Collections/Immutable/Chunk"
import * as Tp from "../../Collections/Immutable/Tuple"
import * as T from "../_internal/effect"
import { paginateChunkM } from "./paginateChunkM"
/**
 * Like `unfoldM`, but allows the emission of values to end one step further than
 * the unfolding of the state. This is useful for embedding paginated APIs,
 * hence the name.
 */

export function paginateM(s) {
  return (f) =>
    paginateChunkM(s, (_) =>
      T.map_(f(_), ({ tuple: [a, s] }) => Tp.tuple(A.single(a), s))
    )
}
//# sourceMappingURL=paginateM.js.map
