//Specificity to resolve ambiguity between FList-IEnumerable public static FList <T> operator+(FList <T> lhs, FList <T> rhs) { return(FList.Cast(lhs.collection.Concat(rhs.collection))); }
public static FList <T> operator+(IEnumerable <T> lhs, FList <T> rhs) { return(FList.Cast(FList.Cast(lhs).collection.Concat(rhs))); }
public static FList <T> operator+(T lhs, FList <T> rhs) { return(FList.Cast(Enumerable.Empty <T>().DefaultIfEmpty(lhs).Concat(rhs))); }