code: function(func, context){
  		var args = [].slice.call(arguments, 2);
  		var apply = func[canSymbol.for("can.apply")];
  		if(apply) {
  			return apply.call(func, context, args);
  		} else {
  			return func.apply(context, args);
  		}
  	}
docs: @function {function(...), Object, ...} can-reflect/call.call call
  @parent can-reflect/call
  @description  Call a callable, with a context object and parameters
  
  @signature `call(func, context, ...rest)`
  
  Call the callable `func` as if it were a function, bound to `context` and with any additional parameters
  occurring after `context` set to the positional parameters.
  
  Note that `func` *must* either be natively callable, implement [can-symbol/symbols/apply @@@@can.apply],
  or have a callable `apply` property to work with `canReflect.call`
  
  ```js
  var compute = canCompute("foo");
  
  canReflect.call(compute, null, "bar");
  canReflect.call(compute, null); // -> "bar"
  ```
  
  @param  {function(...)} func the function to call with the supplied arguments
  @param  {Object} context the context object to set as `this` on the function call
  @param  {*} rest any arguments after `context` will be passed to the function call
  @return {*}  return types and values are determined by the call to `func`