The proposal notes that function return types with some
in a contravariant position are uncallable. Would it be possible for these to be treated as if they are ‘regular’ generics, not reverse generics? Eg
func f(a: some A) -> (some B) -> (some C)
would be equivalent to
func f<T1 : T, T2 : B>(a: T1) -> <T3 : C> (T2) -> (T3)
I think this would resolve the inconsistency you show above. Maybe there is some particular use for returning an uncallable function though?