index.js
function makeMonad(ibind, ipure, check) {
  return generate({inner:{bind:ibind,pure:ipure,check:check},
                   coerce:check != null});
}
function makeMonad(ibind, ipure, check) {
  return generate({inner:{bind:ibind,pure:ipure,check:check},
                   coerce:check != null});
}
Returns monad definitions suitable for @mfjs/compiler from `bind` and `pure`
implementation for it.

The generated monad definition will also contain `reflect` method for
embedding inner monads
@function CC.makeMonad
@param {Function} bind
@param {Function} pure
@param {Function} check