owned this note
owned this note
Published
Linked with GitHub
---
title: "Types Team Meetup Details"
date: 2023-08-30 / 2023-10-09 - 2023-10-11
discussion:
- https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types/topic/in-person.20meetup
- https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types/topic/in-person.20meetup.20agenda
url: https://hackmd.io/cO1NJWTHTVihbE0UCWyRfg
---
# Types Team Meetup Details
## Summary
* Dates: Monday 2023.10.09 – Wednesday 2023.10.11
* Location: Amazon office in Brussels (see below)
* Expected attendees: 7 (Niko, Jack, Santiago, Lcnr, compiler-errors, lqd, Amanda Stjerna)
* poke Niko/Jack to discuss joining if not on this list
* Agenda: see below
* Funding: not centrally provided
## Location
Building Information
Amazon Site Code: BRU10
Physical Address:
> Amazon Europe Core SARL
> 27 Avenue Des Arts (2nd,3rd, 4th & 5th floor)
> 1040 Brussels, Belgium
Room booking:
>
Contact nikomatsakis with questions.
## Agenda
### Monday 2023.10.09
* 09:00 – 10:00 / [Welcome, last meetup review](https://hackmd.io/a4BNc6KPSZCVIFFb9QBNcg)
* 10:00 – 11:00 / [Organizational discussion](https://hackmd.io/MtfD8X9GRxqdfZeT8vxteQ)
* 11:00 - 12:00 / [Stabilization process](https://hackmd.io/aHnGavgaTnmQiNAiE9tC3g) -- lcnr to prep
* 12:00 - 14:00 / Lunch
* 14:00 - 17:00 / [Coherence and trait solver](https://hackmd.io/ABcskdRCRj6WuE3TeX9zEQ) -- lcnr, errs
* Dinner
### Tuesday 2023.10.10
* 09:00 - 10:30 / [TAIT overview](https://hackmd.io/QOsEaEJtQK-XDS_xN4UyQA) -- oli-obk, TC, CE
* 09:00 - 10:30 / Polonius
* 11:00 - 12:00 / [a-mir-formality (overview, roadmap, key milestones)](https://hackmd.io/A37wKGqoQ0OmyT8x5tROCA) -- nikomatsakis to prep
* 12:00 - 14:00 / Lunch
* 14:00 - 15:30 / [Region solving in new trait solver and polonius](https://hackmd.io/qd9Wp03cQVy06yOLnro2Kg) -- nikomatsakis (lcnr)
* [Types team 2024 roadmap](https://hackmd.io/hqjun2xuRQmtBcCps-bAnA)
* Dinner
### Wednesday 2023.10.11
* 09:00 - 12:00 / [Polonius](https://hackmd.io/NK3bxGl_QXeyY4UBgFHzlQ)
* 09:00 - 12:00 / [UnlimiTAITed](https://hackmd.io/QOsEaEJtQK-XDS_xN4UyQA)
* 12:00 - 14:00 / Lunch
* 14:00 - 17:00 / [Types team 2024 roadmap](https://hackmd.io/hqjun2xuRQmtBcCps-bAnA) and/or unscheduled things if we reach alignment quickly
* [Weak type aliases](https://hackmd.io/hnJkp_ZdT6aVUu-7piUdsQ)
* 20:00 - 22:00 / Speaker dinner for EuroRust (nikomatsakis to attend)
End with:
* retro on this meetup, what worked well, what didn't
* anything you wanted to talk about but didn't get time to do so, or other goals that were not met?
Brainstorming doc: https://hackmd.io/_jGVGRrXRoef8AzbDC1NfA
### Other topics to squeeze in
* [ ] Existential lifetimes and errs's PR (https://github.com/rust-lang/rust/pull/116040)
* [ ] `'erased` during analysis (https://github.com/rust-lang/types-team/issues/101)
* [ ] Existential lifetimes (https://github.com/rust-lang/rust/issues/60670)
* [Analysis of #42940](https://hackmd.io/83sY9XQjSiK79QdnqK0F3Q).
* [x] projections in orphan check: https://github.com/rust-lang/rust/issues/99554
* [ ] making all traits coinductive :x:
* generally confident in it, but impl is blocked on the new solver
* could use an RFC
* motivations
* more intuitive, enables perfect derive
* simpler overall (unifies send traits and other things)
* supports best fix for #25860 for some reason or other
* [ ] implication "stuff" (where-clauses on binders) :x:
* blocked on eagerly handling region outlives and things ("new leak check")
* which is blocked on new solver, but not needed for other things in particular
* to have the proper implied bounds ([#25860](https://github.com/rust-lang/rust/issues/25860)), we need coinduction
* [ ] invariants of the type system :shrug: fuzzing https://rustc-dev-guide.rust-lang.org/solve/invariants.html
* [ ] Dependencies on T-type related to 2024 Edition
* [Rust 2024 survey](https://hackmd.io/itGzgM1fQl-oh4d1iP8sFg)
* [Weak type aliases](https://hackmd.io/hnJkp_ZdT6aVUu-7piUdsQ).
* From the [survey](https://hackmd.io/itGzgM1fQl-oh4d1iP8sFg):
* Remove where clauses on type aliases or make them work (["lazy type aliases"](https://rust-lang.zulipchat.com/#narrow/stream/318377-t-lang.2Froadmap-2024/topic/lazy.20type.20aliases)). -- https://github.com/rust-lang/lang-team/issues/227
* Implied bounds.
* blocked on coinduction
* Fixing [limitations](https://blog.rust-lang.org/2022/10/28/gats-stabilization.html) on GATs.
* blocked on new solver and implied bounds
* `dyn` dispatch for AFIT.
* blocked on lang-design but not in a technical way, errs just want someone to tell him what to do
* so he can tell you why it is impossible
* [`dyn` upcasting coercion](https://github.com/rust-lang/rust/issues/65991).
* blocked on [somebody writing stuff](https://github.com/rust-lang/rust/issues/65991#issuecomment-1757680181)
* Perfect derive (we've discussed)
* blocked on coinduction, new solver.
* [Promoting ! to a type rust#35121](https://github.com/rust-lang/rust/issues/35121).
* If we make `!` an alias for `Infallible` but don't change the fallback, then existing uses of `Infallible` start breaking.
* An edition may not be as helpful as hoped; we've have to remind ourselves why that is.
* Can we just stabilize `!`??
* blocked on lang team / somebody writing up a good summary to remind us how awful this is
* [Negative impls in coherence](https://rust-lang.github.io/negative-impls-initiative/).
* blocked on coherence in new solver and a-mir-formality
* have to be careful because of param-env candidates ........
* "Make `dyn Trait` more usable: Broaden the set of traits that can be used with `dyn` and make working with dyn closer to working with generics."
* Similar to the next one.
* "Make more patterns "object safe" and thus usable in dyn Trait objects, including passing self by value and handling impl Trait in argument position" (see [this post](https://smallcultfollowing.com/babysteps/blog/2022/01/07/dyn-async-traits-part-7/)).
* Either this is small and not Edition dependent or it's a huge honkin' change that can't possibly be done by Rust 2024 and would be wildly controversial.
* Fix "Reordering where clauses can change program behavior" [#41756](https://github.com/rust-lang/rust/issues/41756).
* lcnr: This will not be fixed as part of the current scope of the new trait solver.
* nikomatsakis: I believe this can and should be fixed but almost certainly not by Rust 2024.
Related to #116040 and existential lifetimes:
```rust
trait PhantomCapture {
type FakeOpaque<T>: Send + 'static;
fn capture<T>(_t: T) -> Self::FakeOpaque<T>;
}
// This would need existential lifetimes.
// This would not be fixed by a revised version of the #116040 PR:
// error[E0515]: cannot return value referencing function parameter `x`
fn test_return<T: PhantomCapture>(mut x: T) -> T::FakeOpaque<&'static mut T> {
<T as PhantomCapture>::capture(&mut x)
}
// This would be fixed by a revised version of the #116040 PR:
// error[E0505]: cannot move out of `x` because it is borrowed
fn test_drop_captured<T: PhantomCapture>(mut x: T) {
let _c1 = <T as PhantomCapture>::capture(&mut x);
drop(x);
}
```
## FAQ
### Missing topics
> nikomatsakis: Are there things we should be talking about that we are not?
### What does doc prep mean?
> [spastorino](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types/topic/in-person.20meetup.20agenda/near/393989763): this is great! :), @nikomatsakis @Jack Huey when you say "some prep" for technical discussions, did you mean that the idea is to prepare documents that are going to serve driving discussions?
### group dinners
> nikomatsakis: Let's do group dinners monday/tuesday! maybe wednesday! but niko is busy on wed. Any food constraints or recommendations? Drop a line.
### team-building event?
> nikomatsakis: do we want to do something crazy like axe throwing? trust falls? walk in nature????
# Finalizing
[We discussed meeting and outcomes in Zulip here](https://rust-lang.zulipchat.com/#narrow/stream/326132-t-types.2Fmeetings/topic/2023-10-16.20weekly.20meeting). Some key action items:
* [ ] jackh726 + nikomatsakis to start rotation on types-team leadership
* [ ] TC to own update on TAIT and lang-team meeting to cover it
* [ ] nikomatsakis to prepare an a-mir-formality coherence review for a future deep dive meeting
Long term projects:
* [ ] nikomatsakis to drive new stabilization report design
* [ ] jackh726 to own improved tooling to track roadmap