public static S fold <T, S>(Set <T> set, S state, Func <S, T, S> folder) => set.Fold(state, folder);
public static S fold <OrdT, T, S>(Set <OrdT, T> set, S state, Func <S, T, S> folder) where OrdT : struct, Ord <T> => set.Fold(state, folder);