pub fn fn_(
visibility: Option<Visibility>,
fn_name: Name,
type_params: Option<GenericParamList>,
where_clause: Option<WhereClause>,
params: ParamList,
body: BlockExpr,
ret_type: Option<RetType>,
is_async: bool,
is_const: bool,
is_unsafe: bool,
is_gen: bool,
) -> Fn