defmodule Scopes.CSys.Environ do use Agent def create(parent, progs) do {:ok, env} = Agent.start_link( fn -> %{parent: parent, programs: progs} end, name: __MODULE__) env end def get_prog(env, name) do Agent.get(env, fn state -> state.programs[name] end) end def notify(env, msg) do Agent.cast(env, fn state -> send(state.parent, msg) state end) end end