public static A swap <A, X, Y>(Ref <A> r, X x, Y y, Func <X, Y, A, A> f) => r.Swap(x, y, f);
public static A swap <A>(Ref <A> r, Func <A, A> f) => r.Swap(f);
public static A swap <A, X>(Ref <A> r, X x, Func <X, A, A> f) => r.Swap(x, f);
public static A swap <A, X, Y>(Ref <A> r, X x, Y y, Func <X, Y, A, A> f) => r.Swap(x, y, f);
public static A swap <A>(Ref <A> r, Func <A, A> f) => r.Swap(f);
public static A swap <A, X>(Ref <A> r, X x, Func <X, A, A> f) => r.Swap(x, f);