another question here made me realise i don't understand how return types
are handled in julia.
after all, return types are not specified in functions (are they?). so how
does the system know that get() for Dict{A,B} returns type B?
i guess there has to be whole program type inference on startup? that
pulls in and analyses base? or is this info cached somewhere?
because if it was just the JIT seeing what happened in practice as code
ran, then you wouldn't have to worry about efficiency in the memoize case
(because the cache would always return the same type in practice).
is this described somewhere? i thought i had read most of the docs by now
(sorry if i've missed something). or am i confused (again)?
thanks,
andrew
[if that's not clear, i think my problem is i don't understand how much the
compiler relies on type inference, and how much on statistics of types of
instances when running, and when inference is actually done]