Pub-Sub envelope publisher in Erlang

#! /usr/bin/env escript
%%
%% Pubsub envelope publisher
%%

main(_) ->
%% Prepare our context and publisher
{ok, Context} = erlzmq:context(),
{ok, Publisher} = erlzmq:socket(Context, pub),
ok = erlzmq:bind(Publisher, "tcp://*:5563"),

loop(Publisher),

%% We never get here but clean up anyhow
ok = erlzmq:close(Publisher),
ok = erlzmq:term(Context).

loop(Publisher) ->
%% Write two messages, each with an envelope and content
ok = erlzmq:send(Publisher, @<@@[[/span]][[span style="color:#BA2121"]]"A"[[/span]][[span style="color:#666666"]]@@>@, [sndmore]),
ok = erlzmq:send(Publisher, @<@@[[/span]][[span style="color:#BA2121"]]"We don't want to see this"[[/span]][[span style="color:#666666"]]@@>@),
ok = erlzmq:send(Publisher, @<@@[[/span]][[span style="color:#BA2121"]]"B"[[/span]][[span style="color:#666666"]]@@>@, [sndmore]),
ok = erlzmq:send(Publisher, @<@@[[/span]][[span style="color:#BA2121"]]"We would like to see this"[[/span]][[span style="color:#666666"]]@@>@),
timer:sleep(1000),
loop(Publisher).