-module(m). -export([a/1,diff/0]). version() -> 2. diff() -> "Increments the version, changes B assigned atom to 'second'". a(P) -> io:format("Started a() from version ~p ~n", [version()]), B = second, C = fun() -> io:format("From closure, version() -> ~p, B -> ~p ~n", [version(), B]) end, C(), P ! closure_executed, receive continue -> C() end, P ! closure_executed.