title: Erlang/ets: reset ets table after getting a "bad argument"?
body: <p>I've been learning how to use ets, but one thing that has bothered me is that, occasionally*, <code>ets:match</code> throws a <code>bad argument</code>… And, from them on, all subsequent calls (even calls which previously worked) also throw a <code>bad argument</code>:</p>
  
  <pre>
  > ets:match(Tid, { [$r | '$1'] }, 1).
  % this match works...
  % Then, at some point, this comes up:
  ** exception error: bad argument
       in function  ets:match/3
          called as ets:match(24589,{[114|'$1']},1)
  % And from then on, matches stop working:
  > ets:match(Tid, { [$r | '$1'] }, 1).
  ** exception error: bad argument
       in function  ets:match/3
          called as ets:match(24589,{[114|'$1']},1)
  </pre>
  
  <p>Is there any way to "reset" the <code>ets</code> system so that I can query it (ie, from the shell) again?</p>
  
  <p>*: I haven't been able to reproduce the problem… But it happens fairly often while I'm trying to do "other things".</p>