
  [;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. Example:

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