Middle.Fun_kind
Types for function kinds, e.g. StanLib
or UserDefined
, and function suffix types, e.g. foo_ldfp
, bar_lp
val fold_suffix : ('a -> 'b -> 'a) -> 'a -> 'b suffix -> 'a
val hash_fold_suffix :
'propto. (Ppx_hash_lib.Std.Hash.state ->
'propto ->
Ppx_hash_lib.Std.Hash.state) ->
Ppx_hash_lib.Std.Hash.state ->
'propto suffix ->
Ppx_hash_lib.Std.Hash.state
val suffix_of_sexp :
'propto. (Sexplib0.Sexp.t -> 'propto) ->
Sexplib0.Sexp.t ->
'propto suffix
val sexp_of_suffix :
'propto. ('propto -> Sexplib0.Sexp.t) ->
'propto suffix ->
Sexplib0.Sexp.t
type 'e t =
| StanLib of string * bool suffix * Mem_pattern.t
| CompilerInternal of 'e Internal_fun.t
| UserDefined of string * bool suffix
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
val t_of_sexp : 'e. (Sexplib0.Sexp.t -> 'e) -> Sexplib0.Sexp.t -> 'e t
val sexp_of_t : 'e. ('e -> Sexplib0.Sexp.t) -> 'e t -> Sexplib0.Sexp.t
val hash_fold_t :
'e. (Ppx_hash_lib.Std.Hash.state -> 'e -> Ppx_hash_lib.Std.Hash.state) ->
Ppx_hash_lib.Std.Hash.state ->
'e t ->
Ppx_hash_lib.Std.Hash.state
If true, we assume _jacobian functions are "plain" functions for the purposes of typechecking and warnings
val suffix_from_name : string -> bool suffix
val pp : 'a Fmt.t -> Stdlib.Format.formatter -> 'a t -> unit
val collect_exprs : 'a t -> 'a list