/** * Lift a computation from the `Reader` monad. * * @since 2.11.0 */ import { chainFirst } from './Chain'; import { flow } from './function'; import * as R from './Reader'; export function ask(F) { return function () { return F.fromReader(R.ask()); }; } export function asks(F) { return F.fromReader; } export function fromReaderK(F) { return function (f) { return flow(f, F.fromReader); }; } export function chainReaderK(F, M) { var fromReaderKF = fromReaderK(F); return function (f) { return function (ma) { return M.chain(ma, fromReaderKF(f)); }; }; } export function chainFirstReaderK(F, M) { return flow(fromReaderK(F), chainFirst(M)); }