Okay, the friends rewrite was a bit more involved than I had intended. But I've gotten it about as elegant as I think I can, and now I have a somewhat better understanding of what I already did. I rewrote it, then I realized I had bugs, then while trying to fix those bugs, I realized I had the algorithm basically right before (the first rewrite). Well, I'm gonna have to write up everything about this tomorrow. Then I still have to do the bit about merging partial graphs (from the different ways of expressing follow/same-as/invites)