Frontend.SignatureMismatchtype type_mismatch = private | DataOnlyError| TypeMismatch of Middle.UnsizedType.t * Middle.UnsizedType.t * details optionand details = | SuffixMismatch of unit Middle.Fun_kind.suffix * unit Middle.Fun_kind.suffix| ReturnTypeMismatch of Middle.UnsizedType.returntype
* Middle.UnsizedType.returntype| InputMismatch of function_mismatchtype signature_error =
(Middle.UnsizedType.returntype * Middle.UnsizedType.argumentlist)
* function_mismatchtype ('unique, 'error) generic_match_result = | UniqueMatch of 'unique| AmbiguousMatch of (Middle.UnsizedType.returntype
* Middle.UnsizedType.argumentlist)
list| SignatureErrors of 'errortype match_result =
(Middle.UnsizedType.returntype
* (bool Middle.Fun_kind.suffix ->
Ast.fun_kind)
* Promotion.t list,
signature_error list * bool)
generic_match_resultThe match result for general (non-variadic) functions
val check_of_same_type_mod_conv :
Middle.UnsizedType.t ->
Middle.UnsizedType.t ->
(Promotion.t, type_mismatch) Core.resultval check_compatible_arguments_mod_conv :
Middle.UnsizedType.argumentlist ->
Middle.UnsizedType.argumentlist ->
(Promotion.t list, function_mismatch) Core.resultval check_compatible_arguments_no_promotion :
Middle.UnsizedType.argumentlist ->
Middle.UnsizedType.argumentlist ->
(unit, function_mismatch) Core.resultval unique_minimum_promotion :
('a * Promotion.t list) list ->
('a * Promotion.t list, 'a list option) Core.resultval matching_function :
Environment.t ->
string ->
Middle.UnsizedType.argumentlist ->
match_resultSearches for a function of the given name which can support the required argument types. Requires a unique minimum option under type promotion
val matching_stanlib_function :
string ->
Middle.UnsizedType.argumentlist ->
match_resultSame as matching_function but requires specifically that the function be from StanMath (uses Environment.stan_math_environment)
val check_variadic_args :
allow_lpdf:bool ->
Middle.UnsizedType.argumentlist ->
Middle.UnsizedType.argumentlist ->
Middle.UnsizedType.t ->
Middle.UnsizedType.argumentlist ->
(Middle.UnsizedType.t * Promotion.t list,
Middle.UnsizedType.argumentlist * function_mismatch)
Core.resultCheck variadic function arguments. If a match is found, returns Ok of the function type and a list of promotions (see promote) If none is found, returns Error of the list of args and a function_mismatch.
val pp_mismatch_details :
skipped:string list ->
Stdlib.Format.formatter ->
details ->
unitval pp_signature_mismatch :
Stdlib.Format.formatter ->
(string
* Middle.UnsizedType.t list
* (((Middle.UnsizedType.returntype * Middle.UnsizedType.argumentlist)
* function_mismatch)
list
* bool)) ->
unitval pp_math_lib_assignmentoperator_sigs :
Stdlib.Format.formatter ->
(Middle.UnsizedType.t * Middle.Operator.t) ->
unitval compare_errors : function_mismatch -> function_mismatch -> intval compare_match_results : match_result -> match_result -> int