That's what I expected as well, but the compiler disagrees.  It sees the return type of `init()` as a `Target`.  Perhaps I'm not using the right idioms for generics?