code: function(fun /*, args */) {
      var args = L.tail(arguments);
  
      if (L.has(args)) {
        return function(/* arguments */) {
          return fun.apply(null, args.concat(L.toArray(arguments)));
        };
      }
      else return L.curry(fun);
    }
docs: The namespace object `L` is a function in its own right that returns a partially applied function of an arbitrary number of arguments. For example, you can use `L` to partially apply the first argument to the Underscore `_.template` function:  var hi = L(_.template, "Hello <%= name %>"); L.map(hi, [{name: 'Joe'}, {name: 'Bob'}, {name: 'Cleveland'}]);  //=> ["Hello Joe", "Hello Bob", "Hello Cleveland"]  *signature:* `(any* -> a) -> any* -> (any* -> a)`