Module Type.Function

module Param: { ... };
module RestParam: { ... };
module ThisParam: { ... };
module Params: { ... };
type t('M, 'T) = {
  1. tparams: option(Type.TypeParams.t('M, 'T)),
  2. params: Params.t('M, 'T),
  3. return: return_annotation('M, 'T),
  4. comments: option(Syntax.t('M, unit)),
};
and return_annotation('M, 'T) =
  1. | TypeAnnotation(Type.t('M, 'T))
  2. | TypeGuard(Type.TypeGuard.t('M, 'T))
;