A modern approach to programming for the Erlang VM