title: Numba: calling jit with explicit signature using arguments with default values
body: <p>I'm using numba to make some functions containing cycles on numpy arrays.</p>
  
  <p>Everything is fine and dandy, I can use <code>jit</code> and I learned how to define the signature. </p>
  
  <p>Now I tried using jit on a function with optional arguments, e.g.:</p>
  
  <pre><code>from numba import jit
  import numpy as np
  
  @jit(['float64(float64, float64)', 'float64(float64, optional(float))'])
  def fun(a, b=3):
      return a + b
  </code></pre>
  
  <p>This works, but if instead of <code>optional(float)</code> I use <code>optional(float64)</code> it doesn't (same thing with <code>int</code> or <code>int64</code>). I lost 1 hour trying to figure this syntax out (actually, a friend of mine found this solution by chance because he forgot to write the <code>64</code> after the float), but, for the love of me, I cannot understand why this is so. I can't find anything on the internet and numba's docs on the topic are scarce at best (and they specify that <code>optional</code> should take a numba type).</p>
  
  <p>Does anyone know how this works? What am I missing?</p>