Я бы на твоём месте написал нормальную генерик функцию на F#, и вот её бы вызывал рефлексией. Получилось бы значительно более изящно, всего один рефлексивный вызов вместо кучки. А внутри просто List.cast, ну там или Seq.cast.
хз, в тексте там так "A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”."