This whole magic can be explained in one sentence.
`infer` is introduced to TypeScript's templating.
The rest, I mean this sql parser is just the result of this new "tool".
A talks to B
B blocks A
A registers as C
*not too much time passes*
C talks to B
At this point C is considered to be a harasser and therefore it will be hidden for B. B can of course lift the ban if it's just a false positive.
To further specify who's who in this graph, the logic can find the smallest time between ban and the creation of a new user with the same behavior (writes to B) as the reported one.