Blood type compatibility
I think we should stop explaining blood compatibility the way we do, we should use colors instead:

I’m sure other people already use this, but I don’t think I’ve seen it.
In this schema, each receiver can accept blood that has one of the colors that compose it. This is way easier to understand, even toddlers know how colors mix.
The current situation
The current explanation on blood type compatibility is, after some thought, a little bit too complicated, it doesn’t abstract enough from the biological meaning of the symbols A, B, 0, rh+ and rh-.
Due to historical and biological reasons, that I have no issues with, we treat A, B and rh+/rh- differently: we use A or B for the presence of the antigen A or B, and nothing in their absence, but for the antigen rh+ we also have rh- that we assign in its absence.
How to simplify
To simplify the schema, I think it makes sense to think of rh+/rh- as a new letter, D (C should be skipped to avoid confusion 1).
Then we have ABD0: I’d be D, since I’m 0+, and each type can become the following one:
| Blood type | Antigens | Color |
|---|---|---|
| O− | none (/) | white |
| O+ | D | yellow |
| A− | A | cyan |
| A+ | AD | green |
| B− | B | magenta |
| B+ | BD | red |
| AB− | AB | blue |
| AB+ | ABD | black |
How to simplify even further
The updated image becomes:

We could even use the color names, easy to remember, easy to remember compatibility.
Yes, we lose the distinction on how AB and rh work, but honestly, who cares? It’s a little abstraction over what is already an abstraction, for the sake of simplicity.
-
C already names a different antigen in the Rh system. ↩︎