Eh, se mi chiamassi rsdpzed farei come dici.
Interpretando però le tue parole (molte volte una risposta anche se non la capisci ti apre la mente) io in effetti potre "estrarre" l'oggetto facendone una "copia immaginaria" scegliendo uno dei due tipi (Near o Far). Tanto a me che mi frega se l'oggetto chiuso nella scatola è di tipo Near o Far? A me interessa conoscere i valori dei suoi campi. Se dentro la "scatola" (in cui vedo bene l'oggetto x) mi creo una copia y = new Far (x.questo, x.quello, ...) e posso farlo perchè Near e Far sono due tipi in cui x "oscilla", e faccio l'out di y, mi trovo fuori dalla scatola un oggetto y immagine perfetta di x, che differisce al più solo per il tipo, ma che per il resto ha gli stessi campi.
Ci lavoro un pò su e poi ti dico....