Inconsistant precision?

yet.

If I write the following function:

julia> function fun(m::Matrix{Complex})
       return nothing
       end
fun (generic function with 1 method)

And I use

julia> a = [Complex(1.0,0.0) Complex(0.0,0.0) ; complex(0.0,0.0) Complex(1.0,0.0) ]
2×2 Matrix{ComplexF64}:
 1.0+0.0im  0.0+0.0im
 0.0+0.0im  1.0+0.0im

julia> fun(a)
ERROR: MethodError: no method matching fun(::Matrix{ComplexF64})
Closest candidates are:
  fun(::Matrix{Complex}) at REPL[30]:1
Stacktrace:
 [1] top-level scope
   @ REPL[31]:1

Don’t you think this is confusing?
Of course I don’t mind going ComplexF64 all the way. The problem is that when I see a function I did not create asking for Matrix{Complex} I have to start converting my matrices because it will reject my Matrix{ComplexF64}.