I would add two more points:7) I think that having (is foo) imply (is equal? foo) is just a mistake. Equal? is a partly implementation-defined predicate; if you want it, you should specify it. So `is` with a single argument should just be an error.
8) It seems clear to me that (is _ related-to? _) should simply mean `related-to?`. When _ is used as a place holder, it is always assumed that it might mean different things in different places. The interpretation (lambda (_) (related-to? _ _)) violates this assumption.