
  [;1m-spec erase(Key) -> Val | undefined when Key :: term(), Val :: term().[0m

  Returns the value [;;4mVal[0m associated with [;;4mKey[0m and deletes it from
  the process dictionary. Returns [;;4mundefined[0m if no value is
  associated with [;;4mKey[0m.

  The average time complexity for the current implementation of this
  function is O([;;4m1[0m) and the worst case time complexity is O([;;4mN[0m),
  where [;;4mN[0m is the number of items in the process dictionary.

  For example:

    > put(key1, {merry, lambs, are, playing}),
    X = erase(key1),
    {X, erase(key1)}.
    {{merry,lambs,are,playing},undefined}
