fn get_valid_types( function_name: &str, signature: &TypeSignature, current_types: &[DataType], ) -> Result<Vec<Vec<DataType>>>
Returns a Vec of all possible valid argument types for the given signature.