whole_func_string: function compressOneArgFnArray(fns) {
    var errmsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'You must pass me an array of function';
  
    if (!isArray(fns) || fns.length < 1) {
      throw new TypeError(errmsg);
    }
    if (fns.length === 1) {
      if (!isFunction(fns[0])) {
        throw new TypeError(errmsg);
      }
      return fns[0];
    }
    return fns.reduce(function (prev, curr) {
      if (!isFunction(curr) || !isFunction(prev)) throw new TypeError(errmsg);
      return function (value) {
        return bind$1(curr, this)(bind$1(prev, this)(value));
      };
    });
  }
func_code_string: function compressOneArgFnArray(fns) {
    var errmsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'You must pass me an array of function';
  
    if (!isArray(fns) || fns.length < 1) {
      throw new TypeError(errmsg);
    }
    if (fns.length === 1) {
      if (!isFunction(fns[0])) {
        throw new TypeError(errmsg);
      }
      return fns[0];
    }
    return fns.reduce(function (prev, curr) {
      if (!isFunction(curr) || !isFunction(prev)) throw new TypeError(errmsg);
      return function (value) {
        return bind$1(curr, this)(bind$1(prev, this)(value));
      };
    });
  }
func_documentation_string: Compress many function into one function, but this function only accept one arguments;
  @param {Array<Function>} fns the array of function we need to compress into one function
  @param {string} errmsg When we check that there is something is not function, we will throw an error, you can set your own error message