code: function partial(...args) {
    const fn = args[0]
    const xs = args.slice(1)
  
    if(!isFunction(fn)) {
      throw new TypeError('partial: Function required for first argument')
    }
  
    return curry(
      Function.bind.apply(fn, [ null ].concat(xs))
    )
  }
docs: partial : ((* -> c), *) -> * -> c