Type.Functionmodule Param : sig ... endmodule RestParam : sig ... endmodule ThisParam : sig ... endmodule Params : sig ... endtype ('M, 'T) t = {tparams : ('M, 'T) Type.TypeParams.t option;params : ('M, 'T) Params.t;return : ('M, 'T) return_annotation;comments : ('M, unit) Syntax.t option;}and ('M, 'T) return_annotation = | TypeAnnotation of ('M, 'T) Type.t| TypeGuard of ('M, 'T) Type.TypeGuard.t