I think mapping can be defined as `typealias KVMapping Union(Dict, ((TypeVar(:K),TypeVar(:V))...), Vector{(TypeVar(:K), TypeVar(:V)})`, which permits some alternative syntaxes