BTW v ideálním OO jazyce by to šlo přímočaře, jenže takový jazyk neexistuje. Je totiž potřebný přístup k AST. V jazycích s přetěžováním operátorů se to dá většinou nějak napsat, ale je to buď prasárna nebo nedokonalé. Swift by byl v tomto ohledu téměř dokonalý, kdyby měl implicitní konverzi typů, jenže ta by zase haprovala jinde (proto ji odstranili).