   Sets the group leader of Pid to GroupLeader. Typically, this is used when a processes
   started from a certain shell should have another group leader than `:init`.
   """
+  @spec group_leader(leader :: pid, pid) :: true
   def group_leader(leader, pid) do
     :erlang.group_leader(leader, pid)
   end

  @doc """
  Returns the value for the given key.
  """
  def get(key, default // nil) do
    case :erlang.get(key) do
      :undefined ->


  See http://www.erlang.org/doc/man/erlang.html#process_flag-3 for more info.
  """
  @spec flag(pid, process_flag, term) :: term
  def flag(pid, flag, value) do
    :erlang.process_flag(pid, flag, value)
  end
