index.js
function liftContext(ctx, func) {
  if (!ctx.pure) {
    throw new Error("no monad's definition is provided");
  }
  return function() {
    var saved;
    saved = context;
    context = ctx;
    try {
      return func.apply(null, arguments);
    } finally {
      context = saved;
    }
  };
}
function liftContext(ctx, func) {
  if (!ctx.pure) {
    throw new Error("no monad's definition is provided");
  }
  return function() {
    var saved;
    saved = context;
    context = ctx;
    try {
      return func.apply(null, arguments);
    } finally {
      context = saved;
    }
  };
}
function liftContext ( ctx , func ) { if ( ! ctx . pure ) { throw new Error ( "no monad's definition is provided" ) ; } return function ( ) { var saved ; saved = context ; context = ctx ; try { return func . apply ( null , arguments ) ; } finally { context = saved ; } } ; }
Turns a function into a function initializing global context to `ctx`
and reverting it to the old value on exit.

@function M.liftContext
@param {MonadDict} ctx
@param {Function} func
@return {Function}
Turns a function into a function initializing global context to ctx and reverting it to the old value on exit .