It was originally in the original Erlang interpreter written in Prolog but you could use it for back-doors in the communication so we removed them. If you sent an unbound variable in a message then the receiving process could reply by binding the variable. We wanted all communication to be explicit.<p>I agree though that unification is cool. And I still like Prolog and other logic languages, and have implemented Prolog in Erlang, of course.<p>We also gave some thought to laziness but felt it just didn&#x27;t fit as for the type problems in which we were interested. For those problems <i>when</i> things are done is critical, not just that they are eventually done. That would have meant a lot explicit evaluation which defeated the point of laziness.