Deref mechanism is limited and cannot be used to implicitly convert a type to its
target type when passing arguments to functions. For example, if you have a function that takes
an Inner, you cannot pass an Outer to it even if Outer implements Deref.