I think it wants you to be as general as possible in the type definition
so since it detects that P could be out, it suggests you to mark it so
what confuses me is that with
presenter
it shouldn't be possible for it to be covariant
unless maybe the fact that it's private allows it to be used internally when we know that we will indeed be assigning a P?