It's fascinating how Nature effortlessly creates these leaky abstractions, completely opposite to how we design systems, and makes good use of the constant layering violations where we would see unmaintainable code that we can't wrap our heads around.
When we design signaling mechanism, they deal with the layer below while presenting a simpler digital interface to the layer above. Your Ethernet PHY has to care about electrical details, but to the IP stack it's just a stream and sink of bytes. No weird side-band edge cases effects, like if the IP stack could affect DC balance by changing the mix of 1s and 0s it sends out.
But those G protein-coupled receptors — or whatever it is — it seems like if you don't want to miss important side-band edge case signals, you really have to model them as this 3D structure that threads through the membrane 7 times, that you can jiggle on one side to change the shape it has on the other side.
The receptor-agonist abstraction makes total sense from a human perspective (and it's a good and useful model), but at the end of the day the Wikipedia lists nine different types (partial, super-, inverse, co-, irreversible, biased, ..) of agonists, multiple of which can apparently apply to a single ligand ("can concurrently behave as agonist _and_ antagonists at the same receptor, depending on effector pathways or tissue type").
Nature seems to have absolutely no preference for clean abstractions, and I don't know how to feel about that, but it's fascinating to me. Maybe my horrible code is actually universally optimal under a non-human optimizer =)
Or maybe it's just intrinsically hard to make clean abstraction out of chemistry? I wonder if it _would_ be beneficial for a large system like the body to be built out of cleaner (less powerful) abstractions that don't expose all their internal details, but maybe stochastic DNA mutations with natural selection isn't a good enough optimizer to find that place in humanity genomespace?
Death is so out of style compared to Adam and SGD.