code: function _checkForMethod(methodname, fn) {
          return function () {
              var length = arguments.length;
              if (length === 0) {
                  return fn();
              }
              var obj = arguments[length - 1];
              return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, _slice(arguments, 0, length - 1));
          };
      }
docs: Similar to hasMethod, this checks whether a function has a [methodname]
  function. If it isn't an array it will execute that function otherwise it
  will default to the ramda implementation.
  
  @private
  @param {Function} fn ramda implemtation
  @param {String} methodname property to check for a custom implementation
  @return {Object} Whatever the return value of the method is.