See Library.RegisterFunction(string, Delegate) and the generic overloads for what is and is not valid.
This will throw an error if you attempt to add a function that has more than 16 parameters, as that is the largest overload that Func<TResult> etc has.