public Object merge(Object first, Object second) {List<T> outputList = new ArrayList<>();if (!(first instanceof List)) {outputList.add((T) first);} else {outputList.addAll((List<T>) first);}if (!(second instanceof List)) {outputList.add((T) second);} else {outputList.addAll((List<T>) second);}return outputList;}

public override object Merge(object first, object second){IList<T> outputList = new JCG.List<T>();if (!(first is IList<T> firstList)){outputList.Add((T)first);}else{foreach (T value in firstList){outputList.Add(value);}}if (!(second is IList<T> secondList)){outputList.Add((T)second);}else{foreach (T value in secondList){outputList.Add(value);}}return outputList;}
