Programming erlang : software for a concurrent world - Armstrong, Joe (Pragmatic programmers, 2007)