As noted in the docs, `default` could either be a value or a `Callable` (hence, the 2 versions of `getindex` below).  I do use `convert(V,x)` in both versions of `getindex`.  If it happens that `V` and `F` are the same value, that should be a no-op, although I don't know how smart the compiler is.

Aside: this is actually a divergence from python, which only allows defaults from functions, but multiple dispatch makes this easy in Julia.