It's a default for FA. When an implementation of the protocol doesn't declare FA - Self will be used.
Examples:
struct F1: Functor {}
struct F2: Functor {}
struct F3: Functor {
typealias FA = F2
}
F1.FA == F1 // FA is defaulted to `Self` which is `F1` here
F2.FA == F2 // FA is defaulted to `Self` which is `F2` here
F3.FA == F2 // FA is specified by the implementation, so it's `F2`