If you ask a colleague how the Dictyostelium cAMP receptor distinguishes between cAMP and, say, cGMP they will say "it's the binding constant" (some will add "stupid"). There is some truth to this answer, but it cannot be the only way the two are told apart because they differ from each other by the equivalent of just one or two H-bonds. This amounts to a discrimination energy difference of just a few kcal/mol, and thus an error rate of a few percent at steady state. This problem appears in many different systems - DNA replication, amino acid activation, and tubulin polymerization, to name three - and it has been solved, at least for DNA replication, by kinetic proofreading, where a slowing of a forward rate allows a back-reaction to remove the errant nucleotide. There is a canonical signature for all proof-reading systems that can be found for the cAMP receptor, and I will suggest that much of its complexity is a reflection of a proofreading step following binding.