It is actually a long story, and it goes back to the old dogma that lists and structures made out of conses are good-enough,  almost universal building blocks for code and data. Type-tagging was obviously inspired by DNA, etc.<p>As for protocols, there is, for some obvious reasons, still nothing better than asynchronous, out of order message-passing over a packet-based networks, with fixed-size header (upon which one could patter-match in a single pass) and adjustable size payloads, which could adapt to a physical channel by adjusting to its frame-size, so, the stdlib and  OTP is good-enough and well-balanced and just works.<p>It is also not a coincidence that Erlang is pure-functional - so is the world of proteins and enzimes.<p>There is a bit more universality in a chunked linear structures and stateless asynchronous message passing of type-tagged binary data with feed-back loops co-regulation that it seems.)