title: Use functools' @lru_cache without specifying maxsize parameter
body: <p>The <a href="https://docs.python.org/3/library/functools.html#functools.lru_cache" rel="noreferrer">documentation for <code>lru_cache</code></a> gives the function definition:</p>
  
  <blockquote>
  <pre><code>@functools.lru_cache(maxsize=128, typed=False)
  </code></pre>
  </blockquote>
  
  <p>This says to me that <code>maxsize</code> is optional.</p>
  
  <p>However, it doesn't like being called without an argument:</p>
  
  <pre><code>Python 3.6.3 (default, Oct 24 2017, 14:48:20) 
  [GCC 7.2.0] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  &gt;&gt;&gt; import functools
  &gt;&gt;&gt; @functools.lru_cache
  ... def f(): ...
  ... 
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "/usr/lib/python3.6/functools.py", line 477, in lru_cache
      raise TypeError('Expected maxsize to be an integer or None')
  TypeError: Expected maxsize to be an integer or None
   &gt;&gt;&gt; 
  </code></pre>
  
  <p>Calling with an argument is fine:</p>
  
  <pre><code>&gt;&gt;&gt; @functools.lru_cache(8)
  ... def f(): ...
  ... 
  &gt;&gt;&gt; 
  </code></pre>
  
  <p>Am I misreading the documentation?</p>