The reason is the generic type. NSFetchRequest has been turned into a generic to avoid a lot of type casting.
If the function doesn't take any parameter so the concrete type (Person) cannot be passed directly and the return type is also a generic it must be annotated explicitly.