{"ast_node_type":"function","tokens":[{"end":99,"kind":"keyword","start":0,"text":"//"}]}
        //    happen for e.g. `fn foo<T>(t: &T) -> T { t }`, where `expected` is `T` but `found` is
        // 2. The `expected` type parameter does *not* occur in the return expression type. This can
        //    `&T`. Saying "the caller chooses a type for `T` which can be different from `&T`" is