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});
}
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
Returns monad definitions suitable for @mfjs / compiler from bind and pure implementation for it .