however, the only need for that function in the first place was so that we could do unify_forall_other -- i.e., unify a type like for<'a> T and U

but in practice allfor<'a> types in Rust are tied to fn types of some ABI or another. And in fact that's exactly the point of this change, to kind of "fuse" together the quantification with the fn type, versus having them separated as chalk was originally intending -- this matches better Rust and just generally matches the syntax of Rust types better

I see there is one more case I had overlooked -- generator witnesses

maybe we'll just extend chalk with that concept directly, though

@nikomatsakis I've rebased and updated the parser, so it should be good to go. I've renamed TyData::ForAll to TyData::Function as well. Was about to ask whether that Box was still needed, but seems like that was already removed in the meantime :slight_smile: