-module(akk). -export([new/0, add/1, flush/0, collect/1]). new() -> register(?MODULE, spawn(?MODULE, collect, [[]])). add(E) -> ?MODULE ! {add, E}. flush() -> ?MODULE ! {flush, self()}, receive L -> L end. collect(L) -> receive {add, E} -> collect(L ++ [E]); {flush, Pid} -> Pid ! L end.